Could we support allOf in JSON-Schema-based form-generator?

Given this JSON Schema
{
  "title": "TaskFunction3",
  "type": "object",
  "properties": {
    "normalizer": {
      "title": "Normalizer",
      "default": {
        "type": "A"
      },
      "allOf": [
        {
          "$ref": "#/definitions/Normalizer"
        }
      ]
    }
  },
  "additionalProperties": false,
  "definitions": {
    "Normalizer": {
      "title": "Normalizer",
      "type": "object",
      "properties": {
        "type": {
          "title": "Type",
          "default": "A",
          "enum": [
            "A",
            "B"
          ],
          "type": "string"
        }
      }
    }
  }
}

our current UI shows nothing

If we use a slightly different schema (with no allOf)
{
  "title": "TaskFunction2",
  "type": "object",
  "properties": {
    "normalizer": {
      "$ref": "#/definitions/Normalizer"
    }
  },
  "additionalProperties": false,
  "definitions": {
    "Normalizer": {
      "title": "Normalizer",
      "type": "object",
      "properties": {
        "type": {
          "title": "Type",
          "default": "A",
          "enum": [
            "A",
            "B"
          ],
          "type": "string"
        }
      }
    }
  }
}

the UI is as expected:

TBD: would it be possible to support both cases? (and how complex a change would it be?)
Ref https://github.com/fractal-analytics-platform/fractal-tasks-core/pull/650

PR #417 supports all these cases:
allOf with single $ref (our edge case):
{
  "title":"TaskFunction3",
  "type":"object",
  "properties":{
    "normalizer":{
      "title":"Normalizer",
      "default":{
        "type":"B"
      },
      "allOf":[
        {
          "$ref":"#/definitions/Normalizer"
        }
      ]
    }
  },
  "additionalProperties":false,
  "definitions":{
    "Normalizer":{
      "title":"Normalizer",
      "type":"object",
      "properties":{
        "type":{
          "title":"Type",
          "enum":[
            "A",
            "B"
          ],
          "type":"string"
        }
      }
    }
  }
}

allOf with multiple $ref (the form will contain the properties of both schemas):
{
  "title":"TaskFunction3",
  "type":"object",
  "properties":{
    "normalizer":{
      "title":"Normalizer",
      "default":{
        "type1":"A"
      },
      "allOf":[
        {
          "$ref":"#/definitions/Normalizer1"
        },
        {
          "$ref":"#/definitions/Normalizer2"
        }
      ]
    }
  },
  "additionalProperties":false,
  "definitions":{
    "Normalizer1":{
      "title":"Normalizer1",
      "type":"object",
      "properties":{
        "type1":{
          "title":"Type1",
          "default":"A",
          "enum":[
            "A",
            "B"
          ],
          "type":"string"
        }
      }
    },
    "Normalizer2":{
      "title":"Normalizer2",
      "type":"object",
      "properties":{
        "type2":{
          "title":"Type2",
          "default":"D",
          "enum":[
            "C",
            "D"
          ],
          "type":"string"
        }
      }
    }
  }
}

allOf with inline schemas (schemas are merged):
{
  "title":"allOf test",
  "type":"object",
  "properties":{
    "myNumber":{
      "title":"My Number",
      "allOf":[
        {
          "type":"number",
          "minimum":5
        },
        {
          "type":"number",
          "maximum":10
        }
      ]
    }
  }
}

Note that is up to the user to use this feature in a meaningful way. For example you can specify both "type": "number" and "type": "string", but that doesn't make any sense. In that case the current implementation will consider the type of the last schema in the array.
Also notice that allOf only required to handle the merging of multiple schemas to one schema, but if we need in the future to implement also anyOf that will be more complex and will need some refactoring to keep multiple schemas attached to the same key in the form.

For example you can specify both "type": "number" and "type": "string", but that doesn't make any sense. In that case the current implementation will consider the type of the last schema in the array.

The user typically does not generate schema manually, then this hopefully should not happen.
In any case, before #417 the corresponding property would not appear in the UI at all. Thus I think there is no doubt that the new version is an improvement, even if it still may lead to edge cases.


move_var should be configurable

Or really, the check should be that variables are declared with var before they're referenced, as violating that principle seems to be the only situation that has the potential to cause problems in this area (and only to programmers who just can't seem to wrap their head around the idea that if a var is declared in a function, it's a local var everywhere in that function... seems a sad set to cater to...).
Much code readability and maintainability research has shown that declaring variables as close as possible to where they are used, contrary to being lazy or stupid, makes code more maintainable by making it easeir for maintainers to find the declarations.  Grouping variable definitions with their references essentially works on the same principle as grouping functions with data as methods in object-oriented programming, keeping related information together.
Given that the bulk of maintainability research favors declarations close to references, it would seem that JSLint is actually trying to ENFORCE a weakness in my code rather than INFORM me of one with this test...

In point of fact, @sgiovenco, another good option, in addition to @spence's comment that was deleted about using jshint and gjslint, would be to use the closure compiler, which actually follows code paths and allows you to use type checking if you so like, too.
You can find it at:
http://code.google.com/closure/compiler/


TypeError: this.getPackageJsonInfo is not a function

I'm trying to load generated javascript by Autorest in the browser using "ms-rest-js" module instead of node.js specific "ms-rest". I get TypeError: this.getPackageJsonInfo is not a function when trying to call generated api client constructor in these lines (see Autorest node.js generated client sample):
let packageInfo = this.getPackageJsonInfo(__dirname);
this.addUserAgentInfo(`${packageInfo.name}/${packageInfo.version}`);

As I understand this is because my client code is generated by newer Autorest versions which "ms-rest-js" doesn't support yet. I see that testClient.ts file in this repo was generated by Autorest 0.14.0, but I can't understand how to generate my client using this old version. Autorest --version parameter only supports versions from 1.0.1 and even installing Autorest 0.14.0 from npm doesn't help - it automatically downloads and uses the latest version or fails with --version=0.14.0 parameter: AutoRest version '0.14.0' is not found in the releases feed.
Is it possible to generate api client with some old Autorest version that is supported by "ms-rest-js"?

You need to use the typescript generator. The generated client for typescript is a little different than the node.js client generated by Autorest.
autorest --typescript --output-folder="Your output folder" --license-header=MICROSOFT_MIT_NO_VERSION --input-file="Your swagger spec.json" --package-name="your-package-name" --package-version="0.1.0" --generate-metadata=true
When you use the --generate-metadata=true switch it will generate package.json, webpack.config.js and tsconfig.json along with the generated client. Then execute npm install and npm run build. That will give you the browser version.
Let me know if you there are any issues.

@whylee - Are you unblocked?

Sorry for delay. I'm trying to generate the code with typescript generator, but I'm stuck with this error:
>  autorest --input-file=swagger.json --typescript --output-folder=ts --package-name="test-api" --package-version="0.1.0" --generate-metadata=true

Error: Cannot resolve pipeline stage 'swagger-document/identity'.
    at resolvePipelineStageName (C:\Users\pavel\.autorest\plugins\autorest\1.2.2\node_modules\autorest-core\lib\pipeline\pipeline.js:135:15)
    at inputs.map (C:\Users\pavel\.autorest\plugins\autorest\1.2.2\node_modules\autorest-core\lib\pipeline\pipeline.js:152:108)
    at Array.map (<anonymous>)
    at createNodesAndSuffixes (C:\Users\pavel\.autorest\plugins\autorest\1.2.2\node_modules\autorest-core\lib\pipeline\pipeline.js:152:97)
    at BuildPipeline (C:\Users\pavel\.autorest\plugins\autorest\1.2.2\node_modules\autorest-core\lib\pipeline\pipeline.js:198:9)
    at Object.<anonymous> (C:\Users\pavel\.autorest\plugins\autorest\1.2.2\node_modules\autorest-core\lib\pipeline\pipeline.js:207:26)
    at Generator.next (<anonymous>)
    at C:\Users\pavel\AppData\Roaming\npm\node_modules\autorest\lib\polyfill.min.js:17:75
    at Promise (<anonymous>)
    at global.__awaiter (C:\Users\pavel\AppData\Roaming\npm\node_modules\autorest\lib\polyfill.min.js:13:16)
    at Object.RunPipeline (C:\Users\pavel\.autorest\plugins\autorest\1.2.2\node_modules\autorest-core\lib\pipeline\pipeline.js:206:12)
    at AutoRest.<anonymous> (C:\Users\pavel\.autorest\plugins\autorest\1.2.2\node_modules\autorest-core\lib\autorest-core.js:173:32)
    at Generator.next (<anonymous>)
    at fulfilled (C:\Users\pavel\AppData\Roaming\npm\node_modules\autorest\lib\polyfill.min.js:14:62)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)

Autorest is trying to read my "readme.md" file configuration, which I copied from typescript generator readme. Maybe I'm doing something wrong, but I can't find any related docs in the web or github how to correctly use typescript plugin.

@whylee - Sorry for the delayed response. We had some updates going on in core autorest. The installation has been made super simple now.
Please make sure that the version of node.js on your system is atleast 7.10 or greater. Feel free to install the latest version in the 8.x range. After that

npm install -g autorest@preview
autorest --output-folder=<path-to-output-folder> --package-name=<your-package-name> --typescript <path-to-swagger-spec/readme.md> --generate-metadata=true --package-version=<package-name>
OR direct path to the swagger spec using --input-file=<>, if there is no markdown configuration
autorest --output-folder=<path-to-output-folder> --package-name=<your-package-name> --typescript --input-file=<path-to-swagger-spec.json> --generate-metadata=true --package-version=<package-name>

Finally get it to work, thanks! --generate-metadata=true option doesn't produce any additional files though, so I build TypeScript files with webpack to plain JavaScript.

Glad to know that you are unblocked. Interesting. I tested it yesterday and was able to generate package.json, webpack.config.js and tsconfig.json. Essentially these files contain static data which is more or less similar to the ones present in this repo. Feel free to open more issues if you see further problems.

@whylee

--generate-metadata=true option doesn't produce any additional files though

What is the path to --output-folder=<> ? Is it something like C:\ts i.e. is it a top level directory in your drive? May be that could be an issue.
Try giving something like "C:\ts\lib" and then use --generate-metadata=true. The 3 files tsconfig.json, package.json and webpack.config.js are usually one level up. If the path to output-folder was a top level directory then the program may not be able to write files.

You are right, autorest generates these files in the upper directory. I didn't even think to look up there :smile: I think this option should either create the files in the current directory or get path value instead of bool. Creating files in the parent directory is very confusing as for me.
Thanks for your help, now I know how to generate browser javascript and can continue testing it.

Thanks for the feedback. I will look into this. I was under the assumption that user would usually give the path to the src or lib folder of the project as that is where you would want the generated client source code to be. Usually we have the package.json and tsconfig.json etc. files in the root of the project. But you are right, may be asking the filepath for the metadata would be easier.


Providers Doesnt Dispose After  Navigator.of(context).pushReplacement

I have multiple multiple AutoDisposeFutureProvider widget tree. After some specific network response i use Navigator.of(context) .pushReplacement for return the login page. Then i logged in again but  all FutureProviders states still alive, not disposed.
How can i archive dispose all used provider in widget tree with after use Navigator.pushReplacement. Am i doing something wrong?
Thanks for all your efforts on this awesome package after Provider

Hi there,
it would help if you post a reproducible example if you're submitting a bug issue.
Anyways, if you expect your Providers to be disposed (as you say: no one listens to them anymore), but they aren't, unexpectedly, then someone is still listening to those providers. The autoDispose clause will dispose a provider iff no one listens to them.

Here is the reproducible example
main.dart
import 'dart:convert';
import 'package:dio/dio.dart';
import 'package:dio_http_formatter/dio_http_formatter.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:logger/logger.dart';

void main() {
  runApp(
    const ProviderScope(
      child: MyApp(),
    ),
  );
}

class MyApp extends ConsumerWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    dio = ref.watch(networkManagerProvider).dio;

    return MaterialApp(
      title: 'Riverpod Autodispoe Bug Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Autodispoe Bug Demo'),
    );
  }
}

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

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            ElevatedButton(
              onPressed: () {
                Navigator.of(context).push(MaterialPageRoute(builder: (context) => const TodoPage()));
              },
              child: const Text("Login"),
            )
          ],
        ),
      ),
    );
  }
}

class TodoPage extends ConsumerStatefulWidget {
  const TodoPage({Key? key}) : super(key: key);

  @override
  ConsumerState<ConsumerStatefulWidget> createState() => _TodoPageState();
}

class _TodoPageState extends ConsumerState<TodoPage> {
  @override
  Widget build(BuildContext context) {
    final todoListFuturePr = ref.watch(todosListFutureProvider);

    return Scaffold(
      appBar: AppBar(
        title: const Text("Todo List"),
      ),
      body: todoListFuturePr.when(
        data: (data) {
          return ListView.builder(
            itemBuilder: (context, index) {
              final item = data[index];
              return Padding(
                padding: const EdgeInsets.all(8.0),
                child: Card(
                  child: InkWell(
                    onTap: () {
                      Navigator.of(context)
                          .push(MaterialPageRoute(builder: (context) => ItemDetailsPage(item.id.toString())));
                    },
                    child: ListTile(
                      title: Text(item.title ?? '-'),
                      subtitle: Text(item.id?.toString() ?? '-'),
                    ),
                  ),
                ),
              );
            },
          );
        },
        error: (error, stackTrace) => Center(
          child: Text("$error"),
        ),
        loading: () => const Center(
          child: CircularProgressIndicator(),
        ),
      ),
    );
  }
}

class ItemDetailsPage extends ConsumerStatefulWidget {
  final String id;
  const ItemDetailsPage(this.id, {Key? key}) : super(key: key);

  @override
  ConsumerState<ConsumerStatefulWidget> createState() => _ItemDetailsPageState();
}

class _ItemDetailsPageState extends ConsumerState<ItemDetailsPage> {
  @override
  Widget build(BuildContext context) {
    final todoItemFuturePr = ref.watch(todosItemFutureProvider(widget.id));

    return Scaffold(
        appBar: AppBar(
          title: const Text("Item Details"),
        ),
        body: Center(
          child: todoItemFuturePr.when(
            data: (data) {
              return Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: [
                  OutlinedButton(
                      onPressed: () {
                        Navigator.of(context).push(MaterialPageRoute(
                          builder: (context) => const MyHomePage(title: "Login"),
                        ));
                      },
                      child: const Text("Go to LoginPage with pushreplacement")),
                  Padding(
                    padding: const EdgeInsets.all(8.0),
                    child: Card(
                      child: ListTile(
                        title: Text(data.title ?? '-'),
                        subtitle: Text(data.id?.toString() ?? '-'),
                      ),
                    ),
                  ),
                ],
              );
            },
            error: (error, stackTrace) => Center(
              child: Text("$error"),
            ),
            loading: () => const Center(
              child: CircularProgressIndicator(),
            ),
          ),
        ));
  }
}

final networkManagerProvider = Provider<NetworkManager>((ref) {
  return NetworkManager();
});

late Dio dio;

class NetworkManager {
  Dio dio = Dio();

  NetworkManager() {
    initDio();
  }

  initDio() {
    dio.options.sendTimeout = 8000; //8s
    dio.options.receiveTimeout = 8000; //8s
    dio.options.contentType = 'application/json';
    dio.interceptors.addAll([
      HttpFormatter(),
    ]);

    logger.i("Dio initialized");
  }
}

final todosListFutureProvider = FutureProvider.autoDispose<List<Todo>>((ref) async {
  try {
    final response = await dio.get("https://jsonplaceholder.typicode.com/todos",
        options: Options(responseType: ResponseType.plain));
    final todoList = todosListFromJson(response.data);
    ref.onDispose(() {
      logger.i("todosListFutureProvider disposed");
    });
    return todoList;
  } catch (e, s) {
    return Future.error(e, s);
  }
});

final todosItemFutureProvider = FutureProvider.autoDispose.family<Todo, String>((ref, id) async {
  try {
    final response = await dio.get("https://jsonplaceholder.typicode.com/todos/$id",
        options: Options(responseType: ResponseType.plain));
    final todoItem = Todo.fromJson(jsonDecode(response.data));
    ref.onDispose(() {
      logger.i("todosItemFutureProvider disposed");
    });
    return todoItem;
  } catch (e, s) {
    return Future.error(e, s);
  }
});

var logger = Logger();

List<Todo> todosListFromJson(String str) => List<Todo>.from(json.decode(str).map((e) => Todo.fromJson(e)));

class Todo {
  int? userId;
  int? id;
  String? title;
  bool? completed;

  Todo({this.userId, this.id, this.title, this.completed});

  Todo.fromJson(Map<String, dynamic> json) {
    userId = json['userId'];
    id = json['id'];
    title = json['title'];
    completed = json['completed'];
  }
}

pubspec.yaml
name: riverpod_dispose_bug
description: A new Flutter project.

publish_to: 'none'

version: 1.0.0+1

environment:
  sdk: ">=2.16.1 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

  cupertino_icons: ^1.0.2
  dio: ^4.0.4
  flutter_riverpod: ^1.0.3
  dio_http_formatter: ^2.1.0
  logger: ^1.1.0

dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_lints: ^1.0.4

flutter:
  uses-material-design: true

Hi there,
As expected, I don't think Riverpod is bugged. Riverpod is behaving as expected.
On the "Go to LoginPage with Pushreplacement" button's onPressed event, you're just pushing a route.
This implies that:

The widget tree up until that point isn't disposed, since you're not using a pushReplacement, but instead just a `push: this causes a new route to be added on top of everything else, meaning you're not disposing anything, and therefore your tree is still listening to the providers you've created, and therefore they're not disposed as intended by Riverpod's documentation;
Even if you'd use pushReplacement, you're just replacing the last page you're viewing. You'd need to replace all and then push the login page. This means you'd need to Navigator.of(context).popUntil((route) => false) and then Navigator.of(context).push(... your route ...).

Keep in mind that these kind of questions usually belong to stackoverflow.
Also, and this is just my curiosity, why are you using dio = ref.watch(networkManagerProvider).dio, even though that variable is global? If you wanted to use dio as a Singleton, why not just initialize it outside?
Hope this helps (note: I'm just trying to be helpful, I'm not a maintainer or anything)

Closing as this is working as expected, as explained previously 😄
Hopefully the new devtools will help debugging this when they are available.


Batch update issue in 3.1.0-SNAPSHOT

  I created the following AllergyIntolerance resource on test server: https://fhirtest.uhn.ca/baseDstu3

  Then I deleted it

  I tried to post the resource again via Batch Update , it fails. But if I update the resource without Batch it goes through.

{
"resourceType": "Bundle",
"id": "bundle-AllergyIntolerance",
"type": "batch",
"entry": [{
"fullUrl": "AllergyIntolerance/AIA1914009",
"resource":{
"resourceType": "AllergyIntolerance",
"id": "AIA1914009",
"identifier": [{
"system": "urn:oid:2.16.840.1.113883.3.7418.16.1",
"value": "A1914009"
}],
"clinicalStatus": "inactive",
"verificationStatus": "confirmed",
"category": ["medication"],
"code": {
"text": "No Known Allergies"
},
"patient": {
"reference": "Patient/143994"
},
"assertedDate": "2016-07-29T17:02:00-04:00",
"recorder": {
"reference": "Practitioner/651119"
}
}
,
"request": {
"method": "PUT",
"url": "AllergyIntolerance/AIA1914009"
}
            }]

}
In the logs I see that it fails because of the unique constraint on index, the version Id does not increment as it does with normal update. Please take a look as this is important for our project.
2017-12-22 10:10:34.417 [http-nio-8598-exec-457] INFO  ca.uhn.fhir.jpa.dao.BaseHapiFhirDao [BaseHapiFhirDao.java:1575] Resource AllergyIntolerance/AIA1914009/_history/2 has not changed
2017-12-22 10:10:34.418 [http-nio-8598-exec-457] INFO  c.u.f.j.dao.BaseHapiFhirResourceDao [BaseHapiFhirResourceDao.java:1192] Successfully created resource "AllergyIntolerance/AIA1914009/_history/2" in 4ms
2017-12-22 10:10:34.421 [http-nio-8598-exec-457] INFO  ca.uhn.fhir.jpa.dao.BaseHapiFhirDao [BaseHapiFhirDao.java:1637] Saving history entry AllergyIntolerance/AIA1914009/_history/2
2017-12-22 10:10:34.423 [http-nio-8598-exec-457] INFO  o.h.e.j.b.internal.AbstractBatchImpl [AbstractBatchImpl.java:193] HHH000010: On release of batch it still contained JDBC statements
2017-12-22 10:10:34.423 [http-nio-8598-exec-457] ERROR o.h.e.j.batch.internal.BatchingBatch [BatchingBatch.java:120] HHH000315: Exception executing batch [java.sql.BatchUpdateException: ORA-00001: unique constraint (FHIRUSER_STU3.IDX_RESVER_ID_VER) violated
], SQL: insert into HFJ_RES_VER (RES_DELETED_AT, RES_ENCODING, RES_VERSION, FORCED_ID_PID, HAS_TAGS, RES_PUBLISHED, RES_UPDATED, RES_ID, RES_TYPE, RES_VER, PID, RES_TEXT) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2017-12-22 10:10:34.423 [http-nio-8598-exec-457] WARN  o.h.e.jdbc.spi.SqlExceptionHelper [SqlExceptionHelper.java:129] SQL Error: 1, SQLState: 23000
2017-12-22 10:10:34.423 [http-nio-8598-exec-457] ERROR o.h.e.jdbc.spi.SqlExceptionHelper [SqlExceptionHelper.java:131] ORA-00001: unique constraint (FHIRUSER_STU3.IDX_RESVER_ID_VER) violated
2017-12-22 10:10:34.423 [http-nio-8598-exec-457] WARN  o.h.e.jdbc.spi.SqlExceptionHelper [SqlExceptionHelper.java:129] SQL Error: 1, SQLState: 23000
2017-12-22 10:10:34.424 [http-nio-8598-exec-457] ERROR o.h.e.jdbc.spi.SqlExceptionHelper [SqlExceptionHelper.java:131] ORA-00001: unique constraint (FHIRUSER_STU3.IDX_RESVER_ID_VER) violated

I've confirmed this is now working for me on the public server. Whew!
Closing.


feat: Sync wallet when contract is not confirmed yet.

This is covering an edge case where the user opens a dlc channel and wants to close the position within the sync window of the coordinator.
It allows to instantly close the position without having to manually sync the wallet after the dlc channel has been created.

It's probably not the most important feature for prod, but it makes testing a bit easier... Happy to close this PR if the reviewer thinks that this is an unnecessary overhead.

I think it makes sense to sync eagerly in some cases. But when I call is_dlc_channel_confirmed I don't always want the sync to trigger e.g. in certain tests.

hmm.. Can you explain in what tests you would not want to eagerly sync if the dlc channel is signed, but the contract is not confirmed? I thought this could only be the case if we are missing a sync, because use 0-conf everywhere.

I would be okay with defining a separate API with similar behaviour, to be called in certain spots.

I can definitely do that, but I guess I will replace all calls to the current is_dlc_channel_confirmed function, so maybe a rename would be enough?

I will see to rename the function to make it clearer.


Add support for the Packaging complete toggle

What

Add support for the Packaging complete toggle

@teolemon Where would you put it? In the new structured packaging page, on bottom?

@monsieurtanuki At the bottom seems the reasonable option


add touch-timeout attr

this allow us to adjust the touch timeout by an attribute, in case we need 2 drags in one view with different timeout delay

the timeout can be adjusted in the last master version https://github.com/fatlinesofcode/ngDraggable/commit/41f70632c6763804357305c354883d0527c0b763

I really saw that, but what if I would have to items in the same view and each one need different touch-timeout?


Issue #1048 Services manual location

Please review these points:

The new services location form sets the existing, but not in use, manual user location store value along with a new label property. This allows us to not have to  change the default behaviours of the services saga which will use the manual user location if it exists.
Having a fixed header, outside the flatlist, now allows us to simplify our "refresh" logic, we don't need to set a timestamp in order to trigger the refresh
If location lookup fails from the location form currently it does so silently and manual location is not updated, if this is not sufficient we could add lookup error message to the form
I've intentionally sparingly used outside code from the existing search files due to the large refactor that is currently being done for search.

Nice work, happy to see quite a bit of simplification in this PR. There are some bugs though, the My location button doesn't really do anything, it clicks but it doesn't update the string in the location input field. If it would help, you could rebase your PR onto the search refactor PR so you can see your code in that context. The big refactor is very close to done.

@rasmus-storjohann-PG your "My Location" look is likely failing, nothing occurs when this happens (we don't set the label)

I think I've addressed the outstanding issues around this but there is still the question of how the "My Location" button should work. I've assumed that pressing it will try and get your device location and if successful the search will be performed otherwise nothing happens. Is this right? Could people test it and see how it feels to them?

We've agreed "My Location" should follow how it behaves on the main services search.

When there is a location in the search bar, the search bar is not clickable, only the X is. The whole text bar should be clickable and give focus to the input line. Click on the X clear the field and gives focus, clicking on the rest of the input field just gives focus without clearing it

@rasmus-storjohann-PG fix pushed, the Travis failures look unrelated.

At this point we're waiting on some feedback from @cherrielam as to how the functionality should work.

@bensinjin Looks good, a few notes:
Behaviour and styling are different between the Location search on topic-services and Search feature. Can we make these consistent? Specifically:

Clicking "My Location" on Topic-services runs the search immediately. Clicking "My Location" on Search just fills the input field with "My Location" and the user still has to click the Search button to run the search. My preference is that both searches function as the latter ("My location" only fills the form field) to keep it consistent between the two. Note: There is a bug currently on Topic-services where once "My Location" is entered, if the user clicks the field (not the x), they can bring it into focus and edit the text that says "My Location" but clicking "Search" button does not run the search anymore.

"My Location" buttons are different height between Topic-services and Search. Let's go with the height that is on the Search (where the "My location" button is the same height as the "Search" button). It looks a little cleaner.

The "Info only in English" card scrolls with the services content in Search. It does not scroll in topic-services. Let's make it scroll with the services content (as in Search) so it doesn't block so much of the user's view. Also because in the one that is static (on topic-services) it looks buggy that there is the beige horizontal bar underneath the card.

And a few styling requests on the topic-services

Can we reduce the space above the topic title on the topic-services page to reduce the real estate that the teal part takes up?

Bug: The whole page can scroll when it is loading (including the header with the search bar), but once it stops loading only the services scroll.

Corner-case bug: If the location is very long, it just runs onto the right side... Is it possible to hide the overflow?

Thanks @cherrielam! I think I've covered everything outlined, can I get one more review?

Think I addressed everything here, can I get one more review @cherrielam ?

Clear button added when you enter text as per @rasmus-storjohann-PG 's feedback.

Thanks @bensinjin ! Looks great, can we increase the padding below the topic title in the topic-services page? The same padding as before is good, I just wanted to reduce the padding above the topic title last time.
Also is it possible to make the "My Location" button disappear when it's already set to "My Location"? In the same behaviour that the Search currently has. No worries if not.

Fixed!


Disallow inferring array sizes from the contexts that are not permitted

Purpose

$title. Related spec discussion.

Fixes #34017
Approach

Describe how you are implementing the solutions along with the design details.

Samples

Provide high-level details about the samples related to this feature.

Remarks

List any other known issues, related PRs, TODO items, or any other notes related to the PR.

Check List

[ ] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

According to the spec change we need to disallow both these cases(still allow with this change)
// Example 1
public function main() {
    map<int[1][*]> a = {};
}

// Example 2
function value(int[*] x = []) {

}

@hasithaa is there any special reason to disallow second example?

is there any special reason to disallow second example?

IMO, there is no effective usage since this x is need to be a fixed size. Further, it can causes some conflicts, because size of the x is dependent on the argument of first function call.

Shall we change the base to 2.0.x?

Open new PR with the review suggestions and ballerina-2.0.x as the base.


Configuration page text change for rooms

What

Configuration page text changed to 'Join Call' when call is a Rooms call.
Needed add locator prop to CallContext state

Why

https://skype.visualstudio.com/SPOOL/_workitems/edit/2981217
How Tested

Local calling sample
Process & policy checklist

[ ] I have updated the project documentation to reflect my changes if necessary.
[ ] I have read the CONTRIBUTING documentation.

Is this a breaking change?

[ ] This change causes current functionality to break.

This PR breaks the CallAdapter abstraction to reach into AzureCommunicationCallAdapter from CallComposite. We don't want to do that.
Can you please add more context around why we needed to do this, so that we can find an alternative approach?

I need to know the call type in the CallComposite code to be able to change the 'Start call' button text to 'Join call' when it is a Rooms call. Knowing the call type is also required in this PR to know if the 'Copy Invite Link' button should be hidden.
The locator prop is meant to be temporary added to the CallAdapter context to avoid an API change until the CallingSDK will make the call type available.
Would it be better to just add in the locator/ callType prop in CallAdapterClientState like alternateCallerId?


Prepare for refresh SDKs in bulk to release the extension mocking function - 3

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

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


Create Conference website

It should contain, at least:

Information
Agenda
Who's behind it
Collaborators
Contact us (Slack, Twitter, LinkedIn, etc)

This is all done now.


FIX: IndexError in mongodb.py

fix the bug in #1126 .

The get_latest_response has been moved to the ChatBot class as a part of the changes made in #1391. Additional tests have been added to cover the new design.
@Wybxc thank you for the pull request, although this didn't end up being a solution the work you put into it is greatly appreciated.


"EDM rights" field title should be changed to "Rights"

No one knows was "EDM rights" is.

Need to migrate "Edm rights" field to be renamed "Rights" in the index_fields of the Blacklight::Configuration object (blacklight_config, not blacklight_configuration) associated with the exhibit


Push down the deviceController ivar into MTRDevice subclasses.

This allows them to store the specific controller types they are associated with, which will allow us to move APIs that only make sense for a particular type to that type.

Going to take a different approach here.


Fix "Awesome Embedded Rust HAL list" reference

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @therealprof (or someone else) soon.
Please see the contribution instructions for more information.


Integrate with Obsidian Tasks plugin

Add a per-calendar setting for inline tasks in daily notes to use the format supported by Obsidian Tasks for parsing and serialization. This will allow Tasks to show up on Full Calendar and for Full Calendar tasks to show up in Task queries.

I'm guessing this will be a popular feature request, so I am very open to feedback here :)
There are a bunch of dates that can appear in a task. Which one should be considered the date for the task on full calendar?

Due date
Scheduled date
Start date
Daily Note date

I don't think Start date is relevant for the purposes of calendar placement, since it doesn't correspond to when a task is actually going to be completed.
Priority of remaining dates:

⏳ Scheduled date
📅 Due date if ⏳ is not defined
Daily note date if 📅 is not defined

The Tasks plugin doesn't have any syntax for specifying the time of an event, so the startTime/endTime/allDay parameters will remain in use.

How should tasks move between notes when they are moved in Full Calendar? Right now, inline events/tasks always live in the daily note corresponding to when they take place.

If ⏳or 📅 is defined, then don't move the task to a new note, even if the date changes.
Otherwise, move the task.

I believe this matches how the Tasks plugin works -- the file name only matters when the default date setting is enabled.

The Tasks plugin doesn't have any syntax for specifying the time of an event, so the startTime/endTime/allDay parameters will remain in use.

I realize mine might be a special use case of sorts, but I divide my day planner in daily notes into the sub-headings 'morning' / 'rest of the day' / 'evening'. While it complicates things in Full Calendar, something I'd like to see would be the ability to do something like this, or a variation of:

Specify sub-headings in options that different 'startTime's would fall under, i.e. 'startTime' of between 0500 and 0900 is put under 'morning' sub-heading, 0900 to 1900 is put under 'rest of the day', 1900 to 0500 is put under 'evening'
Directly specify a sub-heading when creating a task event, picked from sub-headings available under the heading that's specified in options as "Under heading x in daily notes"

Some questions I have regarding this that I didn't find an answer to in your ideas above (apologies if I missed it); what is the plan for detecting tasks in a daily note? Will it detect only tasks under a specific heading, similar to how adding an event puts it "Under heading", or will it be able to discern all Tasks tasks in the note?

I look forward to this integration. As a journalist, the due date is the highest priority for me (I hardly ever use scheduled although I understand its value to others. It would be easy enough to create "deadline" events on my calendar and switching to using "scheduled" dates on my tasks -- and might even improve my workflow. But would it be possible to parse more than one of these task dates (since a task is not = markdown note)?

As the maintainer of Tasks, I am very happy to pair with someone who knows this plugin’s code well and has merge permissions, to make this happen.
I can be contacted via the email in my GitHub profile.

 Which one should be considered the date for the task on full calendar?

Due date
Scheduled date
Start date
Daily Note date

I don't think Start date is relevant for the purposes of calendar placement, since it doesn't correspond to when a task is actually going to be completed.

From doing Tasks' user support, I don't think there is a single agreed answer that everyone would use to select between the available dates. So I think that might suggest allowing the user to select which one they wanted to schedule the task for.
Alternatively, here's a reply I found useful when asking a similar question in Tasks:
https://github.com/obsidian-tasks-group/obsidian-tasks/discussions/616#discussioncomment-2668002
"use the earliest of the available dates"
In other words, display a task on the earliest of its dates.

Having said the above, I do think that the order you propose in https://github.com/davish/obsidian-full-calendar/issues/219#issuecomment-1339929513 makes a lot of sense.

As the maintainer of Tasks, I am very happy to pair with someone who knows this plugin’s code well and has merge permissions, to make this happen.

@claremacrae, thank you for the offer! I likely won't have time to start working on this until after the New Year, but will follow up with you in January.

 Which one should be considered the date for the task on full calendar?
* Due date

* Scheduled date

* Start date

* Daily Note date

I don't think Start date is relevant for the purposes of calendar placement, since it doesn't correspond to when a task is actually going to be completed.

If there is a start plus due date than I'd treat the item as occurring on each of the days.  If only one of the two show on that day.

Priority of remaining dates:
1. ⏳ Scheduled date

2. 📅 Due date if ⏳ is not defined

3. Daily note date if 📅 is not defined

Since time isn't supported you can scan the item for a regex match for: \d\d:\d\d or d:\d\d-\d:\d for a time

as a simple first step, can you add the due date when you create a task item.  Right now when I use the popup to add an item as a task, it creates the task on the daily note page for the specified date but the item doesn't have a due date of that day.  If you added that we'd get some integration because you imply that the specified date is the due date by putting it on the daily notes page for the date.
Today you create an item with text AAA as on 2023-03-01, then on the daily notes page for 2023-03-01 you add:

[ ] [startTime: 08:00] [endTime:: 09:00] AAA

I'm suggesting you add the time as:

[ ] [startTime: 08:00] [endTime:: 09:00] AAA 📅2023-03-01

I can then use tasks queries that use due dates and the calendar item created will get included.

I don't know this plugin, but in case it helps, Tasks has the ability to treat dates in file-names as Scheduled dates, if you turn that on:
https://obsidian-tasks-group.github.io/obsidian-tasks/getting-started/use-filename-as-default-date/

So if you could express your Tasks queries using scheduled - possibly with boolean OR to also pick up due - than might you be able to do what you wish with the current code?

thanks clare, and I knew that.  The author of the plugin asks that requests be limited to a single request per issue.  I made another request in #272 for a single note to be able to have multiple calendar items and this would be needed to pair with that request, even though it also stands on its own.

So if you could express your Tasks queries using scheduled - possibly with boolean OR to also pick up due - than might you be able to do what you wish with the current code?

I already use happens in my tasks queries, and this picks up scheduled.  if full-calendar added a scheduled icon/date when adding the item that would work for me.  scheduled without times would be all day, scheduled with times is an event at that time start/end

Wanted to chime in and make a request and also thank you for the plugin!
Tasks integration with Full Calendar would be an amazing addition to my workflow. With the recent addition of statuses, especially, seeing that represented in calendar view would be fantastic.

I'm guessing this will be a popular feature request, so I am very open to feedback here :)
There are a bunch of dates that can appear in a task. Which one should be considered the date for the task on full calendar?
* Due date

* Scheduled date

* Start date

* Daily Note date

I don't think Start date is relevant for the purposes of calendar placement, since it doesn't correspond to when a task is actually going to be completed.
Priority of remaining dates:
1. ⏳ Scheduled date

2. 📅 Due date if ⏳ is not defined

3. Daily note date if 📅 is not defined

Showing a task both scheduled and due date (if applicable) showing the on the calendar, daily note if they are not defined.
Further, an option for recurring if a task has until the due date seems like a good idea, either from the start date or the scheduled date. Are repeat dates under consideration? Maybe that would be another factor for recurring.
Example scenarios:

A bill is due on the end of the month (📅), one aims to pay it five days early (⏳). Both days (📅,⏳) show the task.
Write chapter is planned for today (⏳) or every Friday (🔁)
Project X is due by (📅) next month, work cannot start until Tuesday, after which every weekday (🔁), some work on it is ideal, until it is finished.

For extra credit ... showing the date marker(s) (⏳,📅), or other visual cue for it (such as by adjusted color opacity) could be helpful


InceptionV3 Visualization with code to generate spritemap

I have few days back generated the spritemap for InceptionV3 for model found here
I have only generated this for initial few layers(untill 6d) but it is taking more time for deep layers. I only have low end GPU(1050Ti) so didn't work on it further. If anyone interested, can have a look at my repo. The code to generate and save spritemap is here
edit: Example Mixed_5b spritemap

Now that lucid has InceptionV3 and other models, closing this!


Add GxE flag to old studies for which is is missing.

All GxE interaction studies should have the GxE flag set to true (curators assign this by ticking a box in the curation app, or entering information in the submission metadata template).
A user reported that the flag is not set correctly for all old studies. A list of ~50 studies with missing flag is attached, it is too time consuming for curators to manually edit all of these so they should be edited directly in the database by a developer. https://app.zenhub.com/files/2995118/26bc6a44-9d34-4fd6-afe6-687538a3aa42/download

@ala-ebi this will also need doing before we release the data access features


Boolean with value always true

Hi team,
Another question in the list of manu questions that I have asked  🥲
I just wanted to know if there is a way that we can handle scenarios like the following
Assuming I have an API that returns some value as boolean, but i want to make a check in my schema that it has to be always true and if it is sent as false. My case must fail. Something line we define enums for strings

hello @GagandeepSharma060 , all your questions and points are absolutely welcome. Thanks a lot for all the issues you have raised :).
On this question, not sure I follow the use case. Can you please elaborate on the API Design here for my context please?
I am guessing you are looking to restrict the Boolean to a single value at schema level. In OpenAPI 3.0.x, to the best of my understanding, this is not possible. However in OpenAPI 3.1.x, which support more of JSONSchema capabilities we can try using const for this. Here is the documentation.
And then the Boolean definition will look something like this.
openapi: 3.1.0
components:
  schemas:
    ExampleObject:
      type: object
      properties:
        isActive:
          type: boolean
          const: true
      required:
        - isActive

In OpenAPI 3.0.x, we can use enums to restrict a field to a single value.
openapi: 3.0.0
components:
  schemas:
    ExampleObject:
      type: object
      properties:
        isActive:
          type: boolean
          enum: [true]
      required:
        - isActive

Is this on the lines of what you are looking for?

Hey @GagandeepSharma060, Just a pleasant reminder on it.

Yes @samyakOO7. Seems fine, no further questions. Thanks for the reply and apologies for late response.

Thank you for your kind response. We truly appreciate your support and are happy to assist further if needed. Please don't hesitate to reach out with any additional questions or feedback. Closing the issue as of now!


ABC Race: Highlight the next correct if they get too many wrong

To ease on the difficulty.

Added in 1deb14d2e3a75e810e3456182dad5d49151cec1f


Created a new function for the StringUtils class.

Created a new function called palindrome to create a palindrome from an input string.

-1 does not belong in this component IMO and you can't convert a sentence into a palindrome anyway.

No feedback, closing.


[Naming]: Improve function naming

From my forked branch:
init.lua#37-49
function mt_teams.get_team_id(player)
    local meta = player:get_meta()
    return meta:get_int("mt_teams:team")
end

function mt_teams.get_team_name(player)
    local team_id = mt_teams.get_team_id(player)
    return mt_teams.get_team_name_by_id(team_id)
end

function mt_teams.get_team_name_by_id(id)
    return mt_teams.teams[id].name
end

I changed it so each of these functions are named better and I also show a much better approach on getting team name from the player.
To explain in further details, as a list:

Changed mt_teams.get_team to mt_teams.get_team_id
Changed mt_teams:team to use a int instead of float as floating points can vary and thus the classical 3.0 != 3.0 as you may get 3.0000001 or 2.999999 in example.
Changed mt_teams.get_team_name to use obtainable team id to lookup the team name (thus removing the meta mt_teams:name from the player), why? .... Because if you wanted to support renaming the team you'd have to do goofy code to update the meta value for every player on that team.
Changed mt_teams.get_name_id to mt_teams.get_team_name_by_id, this extra "by_id" allows us to separate get_team_name as it takes a player, while the get_team_name_by_id takes it by id.
Changed mt_teams.remove_player where we change table contents within a loop (this is more of a issue if you were changing more than 1 value within that loop, the loop is changing size while we are iterating over it!)
Changed mt_teams.remove_player how we loop over the table (we're not in python anymore, pairs or ipairs)

I might look like I just want to nit pick, but it's to help you write better code, and to help you develop a cool mod.

Thanks for the upgrade in naming! Did you change all of the get_floats to get_ints? There were a more such as when you set the team and that might cause some issues. Also somewhere when I was programming this, intelisense did not show get_int as an option for the MetaRef object which is one of the reasons I did not use it.


Fix some grpc.aio python types

With these, it is actually possible to have typed client stubs where the return type is correctly inferred.
It's only for the non-streaming calls, because there is RequestIterableType for the streaming ones (but it's just Any with extra steps and would require much more work).

Hi, thanks for the PR, the change looks fine to me except for one concern about changing Awaitable to Generator since it's not backward compatible and might break some peoples integration. Can you share more context on the issue you're having now and how this PR can help address it?

Hello, thanks for taking a look.
The Awaitable type for __await__ is wrong. As per mypy docs and PEP492, it's supposed to return a Generator, and it simply does not work (typecheck nor infer return type) with Awaitable.
Besides, if you look at the actual implementation of  __await__, that's what the method is returning, the Awaitable was never correct: https://github.com/grpc/grpc/pull/32475/files#diff-986f9aff481adca09f2b4e49c2d5daa8971a6c5e113bdd96002681e208c0aa1fR268-R293
Now, as for what I'm trying to achieve: mypy-protobuf generates type stubs like this for gRPC services:
class FooServiceStub:
    def __init__(self, channel: grpc.Channel) -> None: ...

    GetFoo: grpc.UnaryUnaryMultiCallable[FooRequest,FooResponse]

It generates non-aio stubs, true, but if you put import grpc.aio as grpc on top, plus the changes in this PR, it actually typechecks and infers argument and return value types correctly.

Hi, sorry for late reply and thanks for the additional context.
We agree with the proposed change, but we would like to verify that it does not break any mypy or pytype checks before merging it. We will update this thread once we had a chance to verify that.
In the meantime, please let us know if the change has already been tested.

Hi, thank you. I'm already using this in some projects, but they are not open-source so I can't provide any examples unfortunately.

Sorry about the delay. I just verified with both mypy and pytype, good news is we're now sure this change is good to merge, but bad news is we're not checking aio files in our pytype workflow, we might need fix that later.
I added a small comment, can you help address that and fix merge conflict?
Thanks again for the contribution!

Hello, sorry for the long turnaround, but I added the Generic and rebased the PR.

Looks like some bazel tests are failing, you can check them locally using:
bazel test //src/python/grpcio_tests/tests/unit:all.
For sanity (format) related fixes, you can run:
./tools/distrib/sanitize.sh (Or ./tools/distrib/yapf_code.sh and ./tools/distrib/isort_code.sh etc manually).


Pelease support the kaminari 1.0

Excuse me, the smart_listing.gemspec has specified the kaminari ~> 0.17, Could you please support the kaminari 1.0?

Yes an update is really important for me, since I can't use the maily_herald-webui library at the moment. I also use activeadmin, which depends on >= 1.0.1.


[Feature Request] [Technical] Update codebase to work with PHP7+

It would be nice if php open source projects can use the latest version of php.
I understand that is a monumental challenge.
We could use https://github.com/phan/phan or some other open source static analyzer to help with this migration.

I don’t understand - we always make an effort to fully support the latest stable version of
PHP.  Currently our tests are even passing on 7.4.

I will close then. It is nice to use return types and the new php features.
Also for security reasons too.
On Tue, Jul 9, 2019 at 7:18 PM Andrew Embler<EMAIL_ADDRESS>wrote:

I don’t understand - we always make an effort to fully support the latest
stable version of
PHP. Currently our tests are even passing on 7.4.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/concrete5/concrete5/issues/7973?email_source=notifications&email_token=ABCG7S7H64M2BD4SOX4C4RDP6UMC5A5CNFSM4H7JJE4KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZRZ3BY#issuecomment-509844871,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABCG7S6N2OSNGOJXZ4I7H3TP6UMC5ANCNFSM4H7JJE4A
.

--
Thank you,
Gavindra Kalikapersaud
LinkedIn Profile https://www.linkedin.com/in/gkalikapersaud

👍


Create SimpleExample.md

Added a simple tutorial for mutations

 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.


workflow editor / e-entity mcafee dataset not found

In the FREME Workflow Editor
http://api.freme-project.eu/freme-workflow-editor/
when I use the e-entity service and use the dataset mcafee I get the following error:
exception : eu.freme.common.exception.OwnedResourceNotFoundException
path : /e-entity/freme-ner/documents
message : Can not find DatasetMetadata with identifier='mcafee'
error : Not Found
status : 404

I can reproduce the problem. The problem is that there is no mcaffee dataset and it should be removed from the dropdown.
Right now this is hard to fix, it would make sense to fix this first: https://github.com/freme-project/freme-workflow-editor/issues/22
We need to make a decision on the future of the freme workflow editor.

Moved to https://github.com/freme-project/freme-workflow-editor/issues/24.


tippy: Fix blueslip error on edit history timestamp hover.

The timestamp in edit history ui also has .message_time.
We had a tippy hover event attached to .message_time
whose code assumes it to belong to an actual message
which caused an error on hovering the message timestamp
in edit history.
This commit fixes it by making the selector more specific.

Testing plan:
Checked the error didn't occur after the change.
GIFs or screenshots:

Merged, thanks @chdinesh1089!


build: remove the PreviewServer on Windows

This is the critical change to enable Windows support in DocC.  The dependency on NIO is restricted to the PreviewServer and as NIO is incapable of supporting non-POSIX models (or emulation of POSIX models), we cannot use this dependency on Windows.  As a temporary solution, remove the NIO dependency on Windows by removing the PreviewServer.

@swift-ci please test

@swift-ci please test

@swift-ci please test


Block syncing issue in alpha.5

This issue may related to https://github.com/paritytech/substrate/issues/5628


rework nav bar

rethink the top nav bar to include correct actions/info:

Connexion link if not logged-in
Logout link if logged-in
Identity selector? To show if you are viewing a page as yourself or as an organization you are a member of
Search field: is this working? Is this relevant on all pages?
other ideas?

Add "Account settings" for "change password / drop account" page.
Add "Create organization"


Add additional linguistic information to saved queries

It would be useful to provide the user with some additional linguistic information.

The number of words (tokens) in a query (corpus)
The option to look for count the instances of one particular keyword within the corpus (this would require an additional search window perhaps)

This enables the user to calculate (or have the computer calculate) the normalized frequency of a word within the sub-collection (or entire collection)

For my understanding: are you trying to solve the same problem as @PimHuijnen in #69?
If not, what is the difference?

I think @PimHuijnen wants a different way to generate wordclouds.
I would like to have some linguistic information on the saved queries. So just a number that says how many words there are within a query.
Still, I think both require the same calculation, namely how  many words are there in a query.
However, I would also like an additional feature (maybe this is another issue, but it is related) that would allow me to search for words within a query. And more importantly to have information on this word. I could see for instance how often Amerika (relative frequency) within a corpus based on the query: "Vietnam AND Soviet"
Now I can of course add Amerika to query, but I only see the absolute number of articles increasing. I cannot see the relative frequency of the words (relative to the amount of words/tokens in the corpus). This would be more telling, I think.

When you say "how many words there are within a query", do you mean

the total length (raw word count) of all matches combined, or
the total number of unique words (repetitions not counted) across all the matches, or
the total number of occurrences of the search terms in the matches, or
something else?

And when you say "normalized frequency of a word within a collection", I presume that you divide one number by another. What would be the numerator and what would be the denominator?

The total amount of words (raw word count) found within the documents belonging to a saved query.
I would like to know how the relative occurrence of a word within a collection based on a query.
So, If I would query Vietnam AND Soviet and this would yield 300 documents. I would like to know how many words there are in these 300 documents. let saw 3000
Then I would like to be able to know how often America appeared in this subset of 300 documents. let say 15 times.
Then this frequency would be: 15/3000
This allows me to compare the relative frequency of words within particular corpora.

Ok, clear!

ElasticSearch can provide the number of words (i.e. tokens) per document, I think: https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-core-types.html#token_count (see this issue as well).
Total number of occurrences of a term can be found in the word cloud, or am I missing something?

It gives the occurrences per term within the sub-collection/saved query. But only if the word also appears in the word-cloud. You cannot query for a particular word.

Note to self: the link above is broken; in ElasticSearch 2.0 this is the correct URL: https://www.elastic.co/guide/en/elasticsearch/reference/current/token-count.html.
In the 1.7 branch this is the correct URL: https://www.elastic.co/guide/en/elasticsearch/reference/1.7/mapping-core-types.html#token_count


16 grobid sentence coordinates

Grobid process to get sentence coordinates.
Use /api/processFulltextDocument with parameters "teiCoordinates" and "segmentSentences". This gives a TEI XML file with each sentence coordinates and page numbers.
Eg :
<facsimile>
		<surface n="1" ulx="0.0" uly="0.0" lrx="595.0" lry="842.0"/>
		<surface n="2" ulx="0.0" uly="0.0" lrx="595.0" lry="842.0"/>
		<surface n="3" ulx="0.0" uly="0.0" lrx="595.0" lry="842.0"/>
		<surface n="4" ulx="0.0" uly="0.0" lrx="595.0" lry="842.0"/>
	</facsimile>
<s coords="2,58.42,766.40,483.20,10.83;2,37.66,777.93,210.02,10.83;2,16.09,791.28,105.28,10.73">each group, number of participants (denominator) included in each analysis and whether the analysis was by original assigned groups No corresponding text</s>

This will be version 0.7
  "name": "pdf2text-extractor",
  "version": "0.7",

Pushed to hub.ncsa.illinois.edu/clowder/extractors-pdf2text:0.7.0. Deployed to consort instance. Working fine. The tei.xml file contains sentence coordinates.

Merging to main.


[Spike] - Research the use of Toast in React Aria Components as a possible source for "flash messages"

We need a way to message users to give them feedback when they interact with the page, like clicking "Archive Template" or "Save as Draft" to let them know that it succeeded or failed.
Flash messages are a possible solution. Fraser suggested "Toast" as a possible solution since it's included within React Aria Components, but we are uncertain about whether it meets accessibility requirements. Also, we're wondering what the implementation is like, and how it compares to either creating our own custom solution.

So far, i tested out react-toastify which is the most popular toast messaging package. It worked, and was easy to style. The messages have a role=alert for screen readers, and also a close button to allow users to close. I was reading about role-alert here: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/alert_role, and it seems that this might be sufficient to make the flash messages accessible.
I started reading about React Aria's "useToast" here: https://react-spectrum.adobe.com/react-aria/useToast.html, but it's unclear whether this is adding any additional accessibility to the messaging.


CDN In front of IMGiX

T31he current plan on IMGiX includes 500Gb of bandwidth, while our usage at the moment is significantly higher as shown below

We should put a Cloudfront distribution in front of it in order to cache the images and serve them via our “own” CDN.

@fredrikved this needs to be changed on the backend only right, as the urls are generated there.

@KillerX Yes, just an environment variable

New domain deployed. Traffic to imgix should decrease.


Site Request

Hi is it possible if you can make a reverse proxy for https://hitomi.la/ (NSFW)

No, this program only proxy pixiv.


⚠ Bofrost.be has degraded performance

In 497f524, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 3562 ms

Resolved: Bofrost.be performance has improved in 5751c5a.


Add FTL destinations

Also renaming hyperspace to FTL because it's cooler.
Gonna add centcomm (that gets unlocked on shuttle countdown) + nukies base for syndicate consoles because tstalker mapped it
:cl: metalgearsloth & tstalker

add: Nukies now start on a nukie planet and have to FTL to the station, ported from Vilous Station 14.
add: Additional shuttles can now travel to Centcomm after the emergency shuttle departs (e.g. cargo)
fix: Fix autodocking when only 1 port was blocked (woops).
tweak: IFF labels now show much further away given nukies don't spawn on the same map as the station anymore (no more cargo shuttle getting lost).

Isn't the nukeops base a bit small? How are they leaving it (I couldn't be assed to test ingame sue me)

I'll get a render.
I also realise that I should probably have nukies code grab the infiltrator prototype rather than having it hardcoded into the map so I'll do that.

Map renderer doesn't work sooo

That looks and feels hacky.

That looks and feels hacky.

whats ur suggestion

i approve of biodome snow sphere


Poetry install command replaced & poetry check command updated

Description
Currently, we aren't checking if the poetry lock file matches the environment when using poetry/ when using poetry to install packages in the sml-catalogue repo.
If you have not checked any of the lists below explain why here.
Type of change

Replaced poetry install command with the poetry install --sync to ensure it matches the lock file
poetry check command was added to validate the content of the pyproject.toml file and its consistency with the poetry.lock file. It returns a detailed report if there are any errors.

Please delete options that are not relevant.

[ ] 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 not work as expected)
[x] Technical Enhancements

Checklist:
If any of these are not completed, please explain why in the notes.
Definition of Done
Code and merges

[x] Code to be commented on where applicable
[x] Documentation updated where required
[x] Have considered non-functional requirements such as Security, Performance, Scalability, and Fault Tolerance
[x] I have linted the code

Testing

[x] All levels of acceptance test are passing (automated, integration, manual, accessibility, etc.)
[x] I have run the behave command to check the selenium behaviour tests pass locally
[x] Acceptance criteria met

Other Checks

[x] I have performed a self-review of my own code
[x] I have checked for spelling errors
[x] I have commented on my code, particularly in hard-to-understand areas
[x] My changes don't break anything unexpected
[x] I have checked and updated the security.txt file where required
[x] Up to date with the main branch

DEPLOY_URL=https://d2pcvibgdboifk.cloudfront.net/
cloudfront_id=E1T1X2EIYHHCQ0

DEPLOY_URL=https://d2pcvibgdboifk.cloudfront.net/
cloudfront_id=E1T1X2EIYHHCQ0

Within pyproject.toml readme = "README.md" and our readme file is named "readme.md". poetry check command checks this and it fails if the file names are different so I changed the readme = "README.MD" to "readme.md"

DEPLOY_URL=https://d2pcvibgdboifk.cloudfront.net/
cloudfront_id=E1T1X2EIYHHCQ0

DEPLOY_URL=https://d2pcvibgdboifk.cloudfront.net/
cloudfront_id=E1T1X2EIYHHCQ0

DEPLOY_URL=https://d2pcvibgdboifk.cloudfront.net/
cloudfront_id=E1T1X2EIYHHCQ0

DEPLOY_URL=https://d2pcvibgdboifk.cloudfront.net/
cloudfront_id=E1T1X2EIYHHCQ0


Saving while zoomed out makes text overlap

This is similar to #4184 , but instead when you try to save.
If you zoom out past Z16, so it says Zoom in to edit, then proceed to click save, the same problem happens:

This was also fixed by #4279


setter/getter

more versatile than validation and with more concise/natural semantics, strictly a superset
also fix mqtt tests that got unintentionally disabled by residual feature flags
implements getter of #186

Yeah my main question was how miniconf-mqtt would handle it. Does it properly get forwarded up the error chain, or is it unwrapped?


Using ComposedObject annotation with Required(false) fails with exception

First of all, what is the expected behaviour of having a field in dynamically built form, annotated like
/**
 * @Annotation\Required(false)
 * @Annotation\AllowEmpty()
 * @Annotation\ComposedObject("SomeObject")
 */

Should the field then be optional but SomeObject validated fully when present?
Second part is more of a bug I think. When you take above annotation and switch the order of @Annotation like
/**
 * @Annotation\ComposedObject("SomeObject")
 * @Annotation\Required(false)
 * @Annotation\AllowEmpty()
 */

then AnnotationBuilder fails to build the form with the exception:
Zend\InputFilter\Factory::createInput expects an array or Traversable; received "boolean"
I didn't find any in depth documentation / FAQ / tutorial about using ComposedObject with other annotations but it seems as if:

Form object that is built with AnnotationBuilder does not take Required and AllowEmpty into consideration when ComposedObject is present.
When using AllowEmpty /  Required(false) with ComposedObject, the composed object specified gets validated regardless if it's present (and obviously fails if it's not).
Switching order of annotations confuses Zend\Form\Factory::createInputFilter().  $inputFilterSpecification argument contains the SomeObject definition but it also has required = false and allow_empty = true keys. Iterating inputFilterSpecification passes $value = false  to Zend\Form\Factory::createInput($value) which refuses to work with false value.

If my explaination is vague, maybe the example could be helpful stackoverflow question

There was a bug where optional fields was validated even if data is not set preset https://github.com/zendframework/zend-inputfilter/pull/25. Update to v2.5.5.
Could you create a new issue about annotation order?

Sure, I will evaluate if error occurs with 2.5.5 and will split second error to another issue. Can you confirm that it should work like I described above?

Here is the list of permutations and expected validations / error messages for each one
https://github.com/zendframework/zend-inputfilter/blob/master/test/InputTest.php#L633

My question is rather about ComposedObject + Required annotation. As ComposedObject is used as a fieldset annotation, I later realized it can be a fieldset limitation. I'm not sure if there is a concept of "optional fieldset" in ZF2. Correct me if I'm wrong, but you cannot mark a fieldset optional, you rather don't list them in validationGroup.
Again, this is as I remembered it when I dug into this in May. Correct me if I'm wrong.

@Maks3w Can you answer my question from the comment above? I'd like to finish up on the topic.


Pass Objects/Arrays as props for custom component?

Is there some way to make this work?
Vue.component('my-select', {
    template: '<select options="options"></select>',
    props: ['options']
})

Then on my page use:
<my-select options="[{text: 'Cats', value: 'cats'}]"></my-select>

More generally, is there some way to pass object/arrays to a custom component directly from the view?

try options="{{ [{text: 'Cats', value: 'cats'}] }}"

Perfect, thank you.

I ran into the same problem and the {{ }} trick doesn't solve when using version 1.0.0. I managed to get it working with :options="[{text: 'Cats'}]".
Is this the right way to do it?

The same as @mattbit when use vue1.0.8

@mattbit @animabear curly braces are not supported for props since 1.0.0.
Thus :options="[{text: 'Cats'}]" is the idiomatic way to do this.

@simplesmiler  I see, thanks
change log:  https://github.com/vuejs/vue/releases

You can also use single quotes for attribute, :items='[{text: "Cats"}]' if you generate json on backend, it uses double quotes by default.

In case anyone finds this issue from google searching for the same thing in Vue 2.0 and figures out that interpolation in props has been removed like I did, here is the proper way to do this is to simply do <custom-element v-bind:whatever="['test','test2']"></custom-element> or <custom-element :whatever="['test','test2']"></custom-element>.

During case a person discover this question commencing Google probing meant for the similar obsession in Vue 2.0 as well as information away to Pay someone to do my assignment - Customassignment.com exclamation in support have be detached reminiscent of achieve.

@HelgeSverre Thanks! <3

{{ }}what is the meaning?

what if options is complex Object

If you try to bind an array as variable, you might need to do
<custom-element v-bind:whatever="[...array]"></custom-element> or <custom-element :whatever="[...array]"></custom-element>

which uses ES2015's spread syntax.

Thank you @nd9600. This was just what I needed to get my errors to go away. The funny thing was, it was still handing the array into the vars without data problems, just the warning.

I had the same problem... removed our friends {{ }} and baang! It worked.


Fix config edit where VISUAL might contain editor with flags.

Thanks for the fix.
Though before we can merge it, can you update your commit message to include the required Signed-off-by line? (see CONTRIBUTING.md)
Thanks!

@stgraber done. looking at the travis failures now..

Thank you, looks good.


Net framework version change

@CBielstein I made the necessary changes although I have 13 test out of the 107 tests failing. It is possibly because of the general problem from modification to the assertion from Fail to  "Assert.True(false, "string");" which has been shown to give different true output from the expected output.  Is it okay if I go ahead and create a helper method as discussed in https://stackoverflow.com/questions/14631923/cannot-find-assert-fail-and-assert-pass-or-equivalent or it is just an error in decoding the different data

@CBielstein I made the necessary changes although I have 13 test out of the 107 tests failing. It is possibly because of the general problem from modification to the assertion from Fail to "Assert.True(false, "string");" which has been shown to give different true output from the expected output. Is it okay if I go ahead and create a helper method as discussed in https://stackoverflow.com/questions/14631923/cannot-find-assert-fail-and-assert-pass-or-equivalent or it is just an error in decoding the different data

@eddywine These are "legitimate" test failures in that they were left that way intentionally during development. This is the outcome of me from 2016 using test driven development and not finishing the process. As I went through the APRS specification, I wrote tests to cover cases I discovered and then left them as failing until I implemented the correct fix (in a more mature project, this would be a bad thing to do and I would instead break the tests down even smaller for each PR). However, since I never finished the library, they remained failing. Basically, these tests are testing for unimplemented functionality, so they aren't really reliable tests.
So these tests don't really help us and we want to start protecting main from failing tests (which will become especially important when you add a CI build soon). But we also don't really want to delete the tests because they will come in handy in the near future and we don't want to forget about them as they are still things we need to fix.
We can do this by adding a Skip parameter to the [Fact] attribute on each of the failing tests. This allows you to specify a string as a reason and the test is reported as skipped instead of succeeded or failed. In addition to skipping the tests, we should open a GitHub issue to ensure it stays on our list to work on. So do the following:

Open a new issue in our repository that says something like "Fix skipped tests from old repository" and put in the description that such tests are testing currently unimplemented features.
Change the [Fact] tag on each of the failing tests to skip with a reason of the issue number and name that you created above something like [Fact(Skip = "### Fix skipped tests from old repository)] (where ### is whatever the issue number that GitHub assigns when you create the issue.)
dotnet test should now show 13 tests skipped but none failing.
Push that and open your PR.

We can/will come back for these tests sooner or later when we need the functionality they test.


Allow clippy::drop_ref

The following code:
#[self_referencing]
struct BoxAndRef {
    data: Box<i32>,
    #[borrows(data)]
    data_ref: &'this i32,
}

Produces an error when run through Clippy:
error: calls to `std::mem::drop` with a reference instead of an owned value. Dropping a reference does nothing.
 --> src/main.rs:5:1
  |
5 | #[self_referencing]
  | ^^^^^^^^^^^^^^^^^^^
  |
  = note: `#[deny(clippy::drop_ref)]` on by default
note: argument has type `&i32`
 --> src/main.rs:5:1
  |
5 | #[self_referencing]
  | ^^^^^^^^^^^^^^^^^^^
  = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#drop_ref
  = note: this error originates in an attribute macro (in Nightly builds, run with -Z macro-backtrace for more info)

This is now fixed in 897245a and available on crates.io as version 0.2.1.

*0.2.2, I had to correct a formatting mistake.


Automatic update of EasyConfig.Net.Core to 1.0.6

NuKeeper has generated an update of EasyConfig.Net.Core from 1.0.4 to 1.0.6
One project update:
Updated NuKeeper\NuKeeper.csproj to EasyConfig.Net.Core 1.0.6 from 1.0.4
This is an automated update. Merge only if it passes tests
NuKeeper: https://github.com/NuKeeperDotNet/NuKeeper

Nugetception!
First time it's been actually used, and on itself
🎉

I couldn't resist


refactor: remove ensureObjectives

ensureObjectives is currently responsible for
a. wrapping ObjectiveModel.insert() (thereby inheriting the ON CONFLICT behaviour from there)
b. forcing an approved status for CloseChannel, and a pending status for all others. It is often immediately followed by store.approveObjective().
c. asserting the type of the returned objective.
This PR pushes responsibilities a and c into the ObjectiveModel.insert() method. There are several benefits:

80 lines saved
the method takes a preApprove boolean, and can only set an approved or pending status.
it does this in a flexible way, without the rigidity and inefficiency of responsibility b above
no more objectiveToBeStored: SupportedObjective & {     status: 'pending' | 'approved' | 'rejected' | 'failed' | 'succeeded';     waitingFor: WaitingFor;   } type
no need to call store.approveObjective() during "my own" API calls (where approval is implied).
if we want to change the ON CONFLICT behaviour of inserting, there is only one place to make that modification

Shortcomings:

cuts out the store entirely. The store might be sad about that.
there is a small regression in that one is not prevented from doing open = insert<Open>(close) (whereas one was prevented from doing open = ensure(close). I have another PR #3320 to fix that, but kept it separate to keep changes small.

Ideally this is considered alongside #3313 .

Checklist:
Code quality

[x] I have written clear commit messages
[x] I have performed a self-review of my own code
[x] This change does not have an unduly wide scope
[x] I have separated logic changes from refactor changes (formatting, renames, etc.)
[x] I have commented my code wherever necessary (can be 0)
[x] I have added tests that prove my fix is effective or that my feature works, if necessary

Project management

[x] I have applied the appropriate labels
[x] I have linked to all relevant issues (can be 0)
[x] I have added all dependent tickets (can be 0)
[x] I have assigned myself to this PR
[x] I have chosen the appropriate pipeline on zenhub

Based on a brief look this looks great to me! It cleans up a lot of messy code and makes things much clearer / straightforward.


Comment: why equal fractions for each county per emm region?

Was browsing how other datasets determined fractions and wondered why the emm region load? was divided into equal fractions for each county? Shouldn't it be scaled (roughly) by population or household?
Asking because I'm wondering if I did my mapping and fractions for transport appropriately.
https://github.com/dsgrid/dsgrid-project-DECARB/blob/577364f5d55112e413f39799bffc760b67ff9dd6/datasets/modeled/buildings/dimension_mappings/emm_region_to_county.csv#L2

We decided not to do a more thorough disaggregation (e.g., scaled by population or electricity consumption) because this data is primarily a placeholder and was never really intended to be downscaled from the EMM region to begin with, but given the needs of dsgrid, we decided to do a simple disaggregation where each county in a given EMM region has the same load profile. We are aware of the simplicity of this approach, but the team decided it wasn't worth it to do a more sophisticated downscaling method because these data will be replaced by actual county-level results in the near future.

Fixed in https://github.com/dsgrid/dsgrid-project-DECARB/pull/27


install.hs build-doc fails with incorrect header check error

When building HIE, I ran the stack ./install.hs hie-8.4.3 (same with 8.6.4) command and then ran stack ./install.hs build-doc-8.4.3. This resulted in the following error
Synchronising submodule url for 'submodules/HaRe'
Synchronising submodule url for 'submodules/HaRe/submodules/cabal-helper'
Synchronising submodule url for 'submodules/HaRe/submodules/ghc-mod'
Synchronising submodule url for 'submodules/brittany'
Synchronising submodule url for 'submodules/cabal-helper'
Synchronising submodule url for 'submodules/floskell'
Synchronising submodule url for 'submodules/ghc-mod'
# git (for submodules)
# stack (for cabal)
# stack (for cabal)
Copying from /home/thepiguy0/.stack/snapshots/x86_64-linux-tinfo6/nightly-2018-12-15/8.6.2/bin/cabal to /home/thepiguy0/.local/bin/cabal

Copied executables to /home/thepiguy0/.local/bin:
- cabal

Warning: The cabal executable found on the PATH environment variable is
         /home/thepiguy0/.stack/snapshots/x86_64-linux-tinfo6/nightly-2018-12-15/8.6.2/bin/cabal and not the version that was just installed. This
         means that cabal calls on the command line will not use this version.
# cabal (for cabal)
Warning: The update command is a part of the legacy v1 style of cabal usage.

Please switch to using either the new project style and the new-update command
or the legacy v1-update alias as new-style projects will become the default in
the next version of cabal-install. Please file a bug if you cannot replicate a
working v1- use case with the new-style commands.

For more information, see: https://wiki.haskell.org/Cabal/NewBuild

Downloading the latest package list from hackage.haskell.org
To revert to previous state run:
    cabal update --index-state='2019-04-04T19:07:28Z'
# cabal (for cabal)
Warning: The install command is a part of the legacy v1 style of cabal usage.

Please switch to using either the new project style and the new-install
command or the legacy v1-install alias as new-style projects will become the
default in the next version of cabal-install. Please file a bug if you cannot
replicate a working v1- use case with the new-style commands.

For more information, see: https://wiki.haskell.org/Cabal/NewBuild

Resolving dependencies...
All the requested packages are already installed:
Cabal-<IP_ADDRESS>
Use --reinstall if you want to reinstall anyway.
# hoogle (for stack-build-doc)
Starting generate
Reading Cabal... hoogle: Codec.Compression.Zlib: compressed data stream format error (incorrect header check)
Error when running Shake build system:
  at src/Development/Shake/Internal/Args.hs:81:69-79:
* Depends on: build-doc-8.4.3
  at /home/thepiguy0/Programs/haskell-ide-engine/install.hs:93:9-33:
* Depends on: stack-build-doc
* Raised the exception:
user error (Development.Shake.command_, system command failed
Command: hoogle generate
Exit code: 1
Stderr:
hoogle: Codec.Compression.Zlib: compressed data stream format error (incorrect header check)
)

I have run this command before (up until recently with the makefile) and this is the first time I have had this issue

Maybe this is related to the downtime of hackage today? Can you reproduce it, e.g. invoking it several times results in the same error message?

Repeating the command (with both 8.6.4 and 8.4.3) produces the same error

I've been having this issue for a couple of days, for me, it only happens when using stack ./install.hs build-doc-8.6.3, if I do it with stack --stack-yaml=stack-8.6.3.yaml hoogle generate it starts generating the docs, but then it encounters a different error related to haddock-api.
    src/Haddock/Backends/LaTeX.hs:246:32: error:
        parse error on input ‘-- ^ to print before each name in an export list’
        |
    246 |           -> ( LaTeX           -- ^ to print before each name in an export list
        |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

I found this PR https://github.com/haskell/haddock/pull/957 which fixes the haddock docs inside haddock-api but it hasn't been merged.

I manage to build the haddoc db with the following steps, I'm just learning Haskell and its ecosystem so maybe there is a better way.

Use haddoc-api directly github. In stack-8.6.3.yaml apply the following changes.

- - haddock-api-2.21.0
+ - github: haskell/haddock
+   commit: 8964666efc4d4ab9756a83d16a02115a38744408
+   subdirs:
+     - haddock-api

This relates to the bug in my previous comment

Fix HaRe MaybeToMonadPlus line 216

$ vim submodules/HaRe/src/Language/Haskell/Refact/Refactoring/MaybeToMonadPlus.hs +216
-            -- *| (GHC.occNameString . GHC.rdrNameOcc) nm == funNm = do
+            -- (GHC.occNameString . GHC.rdrNameOcc) nm == funNm = do

This is because I was getting the following error
    src/Language/Haskell/Refact/Refactoring/MaybeToMonadPlus.hs:216:13: error:
        parse error on input ‘-- *| (GHC.occNameString . GHC.rdrNameOcc) nm == funNm = do’
        |
    216 |             -- *| (GHC.occNameString . GHC.rdrNameOcc) nm == funNm = do
        |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

I started getting the following error:

    Preprocessing library 'hie-test-utils' for haskell-ide-engine-<IP_ADDRESS>..
    Running Haddock on library 'hie-test-utils' for haskell-ide-engine-<IP_ADDRESS>..
    Cabal-simple_mPHDZzAJ_<IP_ADDRESS>_ghc-8.6.3: internal error when calculating
    transitive package dependencies.

To solve it, I just removed from haskell-ide-engine.cabal the -library hie-test-utils and -test-suite <something> entries.

Because stack ./install.hs build-doc-8.6.3 was giving me the Zlib header check error, I executed the command stack --stack-yaml=stack-8.6.3.yaml hoogle generate.

This generated the hoogle db in <haskell-ide-engine project directory>/.stack-work/hoogle/x86_64-osx/lts-13.10/8.6.3/database.hoo; with that, I set the HIE_HOOGLE_DATABASE env var to the database.hoo location.

The ‘hie-test-utils’ error can also be caused by an outdated version of stack. Does stack upgrade fix that issue?

@fendor @bubba I'm still getting the original error (having run stack upgrade, pulled the latest hie source code and having re-run the stack ./install.hs hie-8.6.4 beforehand). Should I be following @alejandrodnm and using stack --stack-yaml=stack-8.6.3.yaml hoogle generate?

Running stack upgrade did nothing for me, it said that I was running the latest version.
$ stack --version

Version 1.9.3, Git revision 40cf7b37526b86d1676da82167ea8758a854953b (6211 commits) x86_64 hpack-0.31.1

I try again with the latest changes from master and got the same results.
I'm on macOS Mojave and I installed stack with the instruction of https://docs.haskellstack.org/en/stable/README/#how-to-install which is justcurl -sSL https://get.haskellstack.org/ | sh

The original error seems to be an issue of hoogle generate. I have such errors regularly as well but I am never able to reproduce them and they vanish fairly quickly (deleting .stack-work / calling git clean -Xdf helps sometimes).
I am unable to understand what you did in your comment afterwards.

does stack ./install.hs hie-8.4.4 work? Did it always work?
does stack ./install.hs build-doc-8.4.3 produce the error? Is this error still present? In this case, please check out my PR #1168, which changes these commands: stack ./install.hs build-doc is the new target for the hoogle database (version-independent)

@power-fungus I'm not sure what's changed (I did change my Linux distro so maybe that had some effect) but suddenly everything is working perfectly (at least for the 8.6.4 release which didn't work before).
To answer your questions, stack ./install.hs hie-8.6.4 always worked but stack ./install.hs build-doc-8.6.4 always produced my original error (alongside other versions).
I need more 8.4.3 as well which was another problematic release so I'll see if that's solved as well

Same here. This is probably a deployment issue on hackage but what do I know.

If it is a temporary hackage error, we won't fix it here! Maybe the pr #1168 fixed it by removing custom hoogle targets.


Making requests when getting updates

hi. telegram recently add an ability to perform a request to the telegram Bot API while sending an answer to the webhook.
can you do a simple implement of this feature in your bot?

@9px sure, i'll do it this weekend

thanks. i also ask this issue as question in stackoverflow.

@9px according to Telegram documentation: It's not possible to know that such a request was successful or get its result.
Test with yourself to check and check, but that should work although you don't receive any response.
Reference: https://core.telegram.org/bots/api#making-requests-when-getting-updates
Close this issue if this answered your question
Regards

No this is not answer.
When a user send a command to robot, robot (server) received it in 1 connection.
When we send an answer to the user (for example with sendMessage method), this is another connection and the telegram return a json so we can detect that the message sent successfully.
The link says that we can save 1 connection and use "answer to telegram webhook" to say the telegram that we want to send a message for example.


add support for 'unslick' responsive breakpoint setting

porting this feature from the original slick carousel
setting disables the slick carousel for the selected breakpoint (nested HTML not modified/slicked)
responsive setting section of README updated with an example usage

@quarklemotion Instead of setting settings: unslick better would be settings: { unslick: true } because the former way you have to add aditional logic when there are no breakpoints and the latter way you don't have to add any additional logic. What do you think ?
Also don't update the dist files. They will updated at the time releasing. Don't bother to update them.

@vramana I was attempting to port over the feature from jquery slick carousel "as is" - and this is how you "unslick" with the jquery slick carousel.  See the settings example for the responsive demo at http://kenwheeler.github.io/slick .  If diverging this port a bit is OK, I'm happy to change the 'unslick' implementation in this PR to make it a 'regular' setting.

@akiran What do you say?

This looks good for me.  We can mostly follows slick's conventions and depart from it only when absolutely necessary.
@quarklemotion  Thanks for the pull request


comments in linear view are sometimes displayed twice

Also, the comment display for complex structures are essentially broken.

This is fixed in 2.4.2900-dev


Make distribution pickle-able

It would be nice if you could pickle all scipy.stats distributions. Currently it does not work because python can't pickle instancemethod objects.
This, in my oppinion should work:
In [1]: from scipy.stats import beta
In [2]: dist = beta(1, 1)
In [3]: import pickle
In [4]: pickle.dumps(dist)

However, it currently does not.
TypeError: can't pickle instancemethod objects

Is there any way to change this behavior without breaking backward compatibility?
I'd be willing to put in some work, I just need some advice.

@rmcgibbo @sotte care to test-drive https://github.com/scipy/scipy/pull/4821?

@ev-br too busy now. Maybe(!) on the weekend. But it looks good.


@alloy => Popular artists QA

These were the last pieces (as I remember) for launching this out of labs, finally. (https://github.com/artsy/collector-experience/issues/76)

Only shows widget on first page
Adds chevron and truncates long names

So I think this can be launched? cc @briansw @tayapage6  let's get this out!

lol @briansw i posted the wrong screenshot! I just edited/updated the comment.

Ok, I guess I'll remove the lab feature guard!

Ok this is ready to be launched! Removed lab feature and added the 'black on hover'.

Let’s do it 🎉

💥


react-native-audio-recorder-player:compileDebugKotlin

Please fill the template to help you out. Also, please try the Example project compare before submiting the issue when you have certain issue with your project setup.

Version of react-native-audio-recorder-player
Version of React Native
Platforms you faced the error (IOS or Android or both?)
Expected behavior
Actual behavior
Steps to reproduce the behabior

Closing due to no template filled.

I am facing the same problem any fix??

I was facing the same issue:

My issue was resolved by upgrading the Kotlin version as follows:

Goto android/build.gradle

Change kotlin version to 1.6.10 or the latest version

buildscript {
    ext {
        RNNKotlinVersion = "1.6.10" // <-- change here
        . . .
    }
    repositories {
        google()
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10" <-- change here
        . . .
    }
}

Reference:
https://stackoverflow.com/a/67816693/9108471


Synchronize with CPython

As mentioned in #55, unicodedata.c and other files extracted from CPython are pretty out of sync with the upstream. Filing this issue so that there's a coherent place for questions/discussion that might crop up in pursuit of that.
See also #39 which covers some of the same ground, but is itself out of date.

I've gotten a start on this, but as I've been working on it, I realize that unicodedata2 does not explicitly declare which Python versions are supported. I'd assume it's the current versions of Python in general, but it would be helpful to have such a declaration.
The thing that got me looking for supported-versions info is the introduction of the _PyCFunction_CAST macro) which appears only on the 3.11 branch and seems safe to leave off for the sake of 3.8, 3.9, 3.10 from this issue's changes. Not sure if there are going to be other version specificity issues, will update here if there.

More information about version sensitivity: the code generated by newer versions of Argument Clinic (clinic, responsible for much of the difference churn) uses some symbols that aren't defined before 3.8 (and Py_ssize_clean_t for which PyPy needs a typedef) , but nothing too tricky to handle.
It seems worth defining a header to hold compatibility code of this sort to streamline comparison against the upstream (i.e. only the #include will show up in a diff against CPython), I've done this on my working branch and things look good, but if this is too opinionated of a change, let me know and I can revise my approach.
For now, I'm using envlist = py{36,37,38,39,310}, pypy{37,38,39} in testing my changes, but won't fuss over it if something breaks for 3.6.

Looks like PyPy is missing some of the symbols necessary for the is_normalized() function (added in CPython 3.8), and I've had a little trouble trying to add those to the compatibility shims without making a mess. Seems like PyPy's implementation is done in Python and takes the slow path of calling normalize() on the input and then comparing the result to the input.
Not sure what the best option is in this case, possibly putting the CPython implementation behind an #ifndef and falling back on behavior equivalent to PyPy's normalize-and-test strategy.

assuming the target Python is >3.7

yes, that's correct.

defining a header to hold compatibility code

yeah, that's a good idea, please do that.

putting the CPython implementation behind an #ifndef PYPY_VERSION and falling back...

sounds good.
Thanks a lot for working on this!!

defining a header to hold compatibility code

yeah, that's a good idea, please do that.

putting the CPython implementation behind an #ifndef PYPY_VERSION and falling back...

sounds good.

I mentioned this on the PR I just opened, but it seems that the Argument Clinic changes are a little too much to handle this way (or maybe I didn't go through enough rounds of "find that missing symbol and add it").
There shouldn't be any trouble sticking with the old clinic style for the time being, but it's something to keep an eye out for as 3.7 and 3.8 reach their EOL.

@SnoopJ  can this be closed?

There's going to be some more stuff to do when 3.7 slips into obsolescence, but yep this can be closed now

I recently became aware of the pythoncapi-compat project, which might be helpful for future work on the C API usage of unicodedata2 in place of the _unicodedata2_compat.h shim.


Installation and Styling...

I had the same issues as others for installation.  Followed:  https://www.freecodecamp.org/news/build-native-desktop-apps-with-javascript-a49ede90d8e9/ which was a bit clearer.
Q.  Is it still not possible for UI customizations (styling)?

V2 supports styling and that is being released very soon. V1 does not support styling.