[MicroProfile] [7.0] Specification Review

Specification issue template
When creating a specification project release review, create an issue in the MicroProfile-WG repository repo with the content defined as follows.

[x] Specification name and version
[x] Add the label Release Review
[x] Naming conventions for artifacts:

[x] Specification PDF in the form of microprofile-project-spec-version.pdf
[x] Specification HTML in the form of microprofile-project-spec-version.html
project is the microprofile specification short project name (config, health, ...)
version is the two digit x.y version of the specification

[x] The Nexus Staging links (orgeclipsemicroprofile-NNNN where NNNN is the staging repository id) (eg, https://oss.sonatype.org/content/repositories/orgeclipsemicroprofile-NNNN/org/eclipse/microprofile/config/) which contain all the binaries and relevant documentation:

[x] Staging Repo
[x] Spec PDF
[x] Spec HTML
[ ] [Javadoc](add link) n/a
[ ] [API Jar](add link) n/a
[ ] [TCK Jar](add link) n/a

[x] A link in the Eclipse downloads sections is still available for specs and apidocs:

[x] https://download.eclipse.org/microprofile/staging/microprofile-7.0/
[ ] An apidocs directory containing the javadoc associated with the API jar. (n/a)

[x] Summary that a Compatible Implementation is complete, passes the TCK, and that the TCK includes sufficient coverage of the specification.

[x] Compatible Certification Request

[ ] Release Review

[x] Follow governance process and create/update release record

Component Release Record

[x] Email to PMC (more info here)
[x] Start release review by emailing EMO (more info here)
[x] A member of Steering Committee initiates the ballot by sending an email to [microprofile-wg]<EMAIL_ADDRESS>(more info here)
[ ] After the voting has ended, email [microprofile-wg]<EMAIL_ADDRESS>with the ballot result (more info here)

@jclingan  The nexus staging links need to be updated, the new staging repo is https://oss.sonatype.org/content/repositories/orgeclipsemicroprofile-1722/

Ballot initiated.

Hello all,
the EMO is trying to avoid duplication of release records, so we will be providing our feedback and comments related to this release directly here.
EMO REVIEW CHECKLIST
EDP Review status: ONGOING
EMO review checklist
PMI record: https://projects.eclipse.org/projects/technology.microprofile/reviews/microprofiler-microprofile-7.0-release-review
EF Specification Process

[ ] Spec Committee Ballot completed

Intellectual Property Management

[ ] All project code has copyright and license headers correctly applied. ** EMO will scan the code at their discretion **
[ ]  All distributed third-party content has been vetted by the IP Due Diligence process (i.e., IP Log has been approved)

Open Source Rules of Engagement

[ ] PMC approval on the mailing list

General:

[ ] Project is operating within the mission and scope defined in its top-level project’s charter
[ ]  Project is operating within the bounds of its own scope
[ ]  Project is operating in an open and transparent manner
[ ]  Overall the project is operating according to the Eclipse Development Process.

Things to check:

Communication channels advertised
Advertised communication channels used
Committers are responding to questions
Committers are responding to issues
Committers are responding to pull/merge/review requests

Branding and Trademarks
The following applies when the project has a custom website.
To the best of our knowledge:

[ ]  Project content correctly uses Eclipse Foundation trademarks
[ ] Project content (code and documentation) does not violate trademarks owned by other organizations

Things to check:

[ ]  Project website uses the project's formal name in first and all prominent references
[ ]   Project website includes a trademark attribution statement
[ ] Project website footers contain all necessary elements

Legal Documentation
Required files:

[ ] License files in all repository roots
[ ]  README
[ ]  CONTRIBUTING (or equivalent)

Recommended files:

[ ] NOTICES or equivalent (you can use the Legal Documentation generator available under committer tools)
[ ]  CODE_OF_CONDUCT
[ ]  SECURITY

See examples for Security file and Code of Conduct.
Required elements:

[ ]  ECA is referenced/described

Recommended elements:

[ ]  Build instructions provided
[ ] Security policy is described

Metadata (PMI)

[ ] The formal name, e.g. "Eclipse Foo™", is used in the project title
[ ] The formal name including appropriate marks (e.g, "™") is used in the first mention in the text of the project description, and scope
[ ] The project description starts with a single paragraph that can serve as an executive summary
[ ] Source code repository references are up-to-date
[ ] Download links and information are up-to-date (see EF handbook for more information on how-to do this)
[ ] Communication channels listed in the PMI (i.e. public mailing list, forums, etc.)

Hello all,
the EMO is trying to avoid duplication of release records, so we will be providing our feedback and comments related to this release directly here.
EMO REVIEW CHECKLIST
EDP Review status: ONGOING
EMO review checklist
PMI record: URL
EF Specification Process

[ ] Spec Committee Ballot completed

Intellectual Property Management

[ ] All project code has copyright and license headers correctly applied. ** EMO will scan the code at their discretion **
[ ]  All distributed third-party content has been vetted by the IP Due Diligence process (i.e., IP Log has been approved)

Open Source Rules of Engagement

[ ] PMC approval on the mailing list

General:

[ ] Project is operating within the mission and scope defined in its top-level project’s charter
[ ]  Project is operating within the bounds of its own scope
[ ]  Project is operating in an open and transparent manner
[ ]  Overall the project is operating according to the Eclipse Development Process.

Things to check:

Communication channels advertised
Advertised communication channels used
Committers are responding to questions
Committers are responding to issues
Committers are responding to pull/merge/review requests

Branding and Trademarks
The following applies when the project has a custom website.
To the best of our knowledge:

[ ]  Project content correctly uses Eclipse Foundation trademarks
[ ] Project content (code and documentation) does not violate trademarks owned by other organizations

Things to check:

[ ]  Project website uses the project's formal name in first and all prominent references
[ ]   Project website includes a trademark attribution statement
[ ] Project website footers contain all necessary elements

Legal Documentation
Required files:

[ ] License files in all repository roots
[ ]  README
[ ]  CONTRIBUTING (or equivalent)

Recommended files:

[ ] NOTICES or equivalent (you can use the Legal Documentation generator available under committer tools)
[ ]  CODE_OF_CONDUCT
[ ]  SECURITY

See examples for Security file and Code of Conduct.
Required elements:

[ ]  ECA is referenced/described

Recommended elements:

[ ]  Build instructions provided
[ ] Security policy is described

Metadata (PMI)

[ ] The formal name, e.g. "Eclipse Foo™", is used in the project title
[ ] The formal name including appropriate marks (e.g, "™") is used in the first mention in the text of the project description, and scope
[ ] The project description starts with a single paragraph that can serve as an executive summary
[ ] Source code repository references are up-to-date
[ ] Download links and information are up-to-date (see EF handbook for more information on how-to do this)
[ ] Communication channels listed in the PMI (i.e. public mailing list, forums, etc.)


Collect metrics on the monitoring server itself

An overloaded monitoring server is a problem the user need to be aware of.

Closed by commit 248252b62eae826d2f03163a295610ab9596459a


Preparing visual refinements plan

Breaking down concepts prepared by Abhay into actionable tickets.

Please add your planning poker estimate with Zenhub @KelvinOm


Expression parameter should be case sensitive

Hi,
Thanks for the great work!
I'm seeing one issue where I'm calling DynamicInvoke method with multiple parameters and one parameter is bool and another is a list of someclass now if the class has a prop which has same name as the bool parameter then DynamicInvoke is considering bool parameter instead of the prop inside the class list parameter. The only diff between them is of case. Please see the example below.
class DataClass
{
	public bool IsTrue;
}

bool isTrue = true;
var abc = new List<DataClass>() { new DataClass() { IsTrue = false } };
var x = new List<ParameterExpression>();
x.Add(Expression.Parameter(isTrue.GetType(), "isTrue"));
x.Add(Expression.Parameter(abc.GetType(), "abc"));

var config = new ParsingConfig();
string query = "abc.Where(IsTrue == true)";
var e = DynamicExpressionParser.ParseLambda(config, x.ToArray(), null, query);
Delegate del = e.Compile();
var result = del.DynamicInvoke(isTrue, abc);

As you can see in the above example there is one isTrue variable and one property in DataClass which is called IsTrue, please note the case difference of "i". The query DyanmicInvoke should be independent of the variable x named as isTrue in the parameter set because it's no where used in the query, but that's not the case if I set isTrue=true result has records and when I change isTure to false then there are no records in the result and there is no change in result if I modify the value of IsTrue property of abc list var. It means DynamicInvoke is not checking the casing of the fields.
Expected result:

parameter match should be case-sensitive.

if no parameter matches with case sensitivity then error should be thrown.

It's counter intuitive when we come from c# world and use LINQ like expressions.
Please share your thoughts why it's not working as expected.
Thanks

Hello @joshidp ,
By default, I believe case insensitive should be the default behavior as it's now. Keep in mind a lot of people are building their dynamic string through some external source so the casing might not always be good.
However, we should have an option as well to force at least parameters to be case sensitive to support your scenario.
We will look at it.
Best Regards,
Jon

Performance Libraries
context.BulkInsert(list, options => options.BatchSize = 1000);
Entity Framework Extensions • Entity Framework Classic • Bulk Operations •  Dapper Plus
Runtime Evaluation
Eval.Execute("x + y", new {x = 1, y = 2}); // return 3
C# Eval Function • SQL Eval Function

Thanks for the reply.
JSON is case sensitive and LINQ is case sensitive so I feel default option for parameters in this lib  also should be case sensitive, it protect us from getting incorrect results which can go unchecked as shown in my example.
Anyways as long as we have an option to set the casing requirement it should be ok.
Eagerly waiting for your PR/release to provide case sensitivity option.
Thanks

Hello @joshidp ,
The v1.2.2 has been released.
We added the option config.IsCaseSensitive = true. When enabled, the library will check for casing as well.
Due to the high popularity of this library and how important this behavior could impact existing code, making it true by default would have been way too big breaking changes.
Let me know if everything now works as expected with this option.
Best Regards,
Jon

It's working as expected, thanks for the fix 👍

Awesome @joshidp
don't hesitate to contact us for any questions, issues or feedback!
Best regards,
Jon


Add a Connection.closeHasBeenRequested() to know when a client has requested a connection to close

I am opening an issue to discuss how we could get the state of a connection. Here are some use cases / problems we encountered so far:

When a connection is opened, it can only be closed. We cannot tell whether the connection is really physically connected to a server and working.

When implementing the ClusterManager for Vertx, we need at some point to be able to check through something like Connection.isConnected() whether we can really send some messages or not. Vertx is not design to allow some blocking operations to be performed (i.e. when closing) and we have to check whether the connection is opened or not first before it tries to send some messages.

I think it was @henri-tremblay 's idea behind https://github.com/Terracotta-OSS/terracotta-core/pull/518

In management, currently, we are doing all our voltron invocation using futures and timeout. This is not what we want, but this is the ONLY WAY we have currently to detect when there is a disconnect and reconnect, because an operation times out, then, succeeds again. This is wrong, because an operation timeout could also mean that the server is really working, but just slow, or a failover takes a long time. But we have no way to tell the difference between a real timeout on an operation (i.e. slow), and the connection that is physically disconnected. We need to report a disconnect event to the UI, but also switch to the diagnostic  / recovery service, ONLY if a connection is broken, not in the case where the operations times out because server is slow or in a failover.

For specific use cases such as being able to switch to a diagnostic entity or recovery use cases, we first need to know that there has been an issue with a connection. And we cannot tell currently that a connection has been physically disconnected because the server is down.

Since a connection is able to failover, it supposedly knows about the other nodes. So I don't know for this specific point what to report (because some passive might never come up ACTIVE). So perhaps the solution would be to report states Connection.getState() like CONNECTED, WAITING_ACTIVE, DISCONNECTED, etc.
So this request is both related to the work we need to do in M&N this year and also relative to the issues we encountered when bridging Vertx with the Terracotta Server.
CC @anthonydahanne @GaryWKeim @henri-tremblay @ljacomet

Absolutely needed.

There are a few issues with this.

Are you interested in knowing whether you already closed the connection (which you should know from within your own code) or whether it has been disconnected at the socket layer?  If the latter, you typically only know that when it is too late (the connection has been effectively gone, for a while, but there was no explicit disconnect - happens in the case of anything but a clean remote-side disconnect)
Even if you could ask if the connection is still up, that can asynchronously change underneath you at any point, so it wouldn't really protect you
The state transition of the connection, during a fail-over, is also happening asynchronously of the thread which is running the client code.  If you ask twice and see it is connected, in both cases, that doesn't mean that the physical connection is to the same server
Any connection which represents an abstraction over potentially more than one stripe connection wouldn't be able to sensibly answer this since it could be "partially" connected

In all of these cases, you can't mitigate the need to handle this as a timeout, at a higher level.
The best that could be done, is a notification that these changes had happened, but that doesn't tell you if what you are about to do will be non-blocking (just that something interesting happened in the past).  Even that would be potentially problematic in the case of any sort of aggregate connection.
I am more interested in understanding the specific problem that you have and looking at from the top, first.  I am not convinced that this kind of feature would solve your problem, given the above-mentioned reasons.

As I explained, we need a way to make the difference between an invoke that times out (but can still be executed on server because server is slow or else), and when the connection is broken, before we send any invoke that will or not timeout (and thus block).

when the connection is broken, before we send any invoke

But the connection can drop at any point.  Asking if it is up "now" (assuming that such a thing can reliably be determined) doesn't mean that it will be up later.  This would only solve the trivial cases but you would still need the same machinery to handle all the other cases.
If this were more about being able to somehow interpret a timeout (after it happened), I could almost see the point (not quite, though, since the disconnect may have happened after the server received the message - it would still run it), but it doesn't sound like that is the problem you are trying to solve.

So what if all servers go down and no passive become active ? How we can tell that the Connection is "broken" ?  By broken I mean that an invokation call with a timeout will timeout but we don't know why, and an invokation that is blocking will block indefinitely.

We still need to have a sort of Connection.isClosed() when the connection is shutdown or closed because in a lot of framework (vertx is one, ehcache is another one), the TC Connection might be provided by an external service. So another service using it might request to know the state of this connection in case it is closed externally. So it's not true that I will know when the connection is closed.

having a isDisconnected() method would allow us to make better decisions when (before or after) a timeout occurs (true ? don't try retry immediately and notify the user or system somehow otherwise keep on trying, it was just slow)

Mathieu.  That inferring too much about the underlying implementation than we should expose.

After our discussion, I think we managed to distill this down to a very specific request:
Expose something like wasShutDownLocally(), on the Connection, which can only tell you if someone called close() on this object instance.  It doesn't tell you anything about the state of the network, just the state of the object instance.
The question now comes down to whether or not the Connection is the right place for this or if the use-case is too specific to one situation to justify pushing it into the API.
One core agreement we do appear to have is realizing that you could not use this to infer whether a message you are "about to" send would be able to go over the network since another thread can close the connection, within the object, at any time, and the network can fail asynchronously, at any time.  Catching the exception for the closed connection is always required, when sending a message.

The more I think about this, the more I question the usefulness of such a flag.  Part of the problem here is that state of the Connection doesn't really tie directly to the state of the associated client-side entities.  If the client side entity calls wasShutdownLocally() and true is returned, it is still possible for an associated entity to have incoming messages processed and endpoint callbacks being called.  I'm more in favor of having any shutdown being tracked and reported by the client side entity or the client side application.

yes @myronkscott , agree! The only reason of this flag is that we can have a way to know that connection.close() has been called, potentially from an external place that we do not control, so that we can act on this fact. That's the only reason.

Maybe this needs one more discussion, but from what I read it feels like the ability to register listeners on a connection would be a better approach. These could get called when the connection is knowingly closed (whether from the local or remote end). Wdyt?

EntityClientEndpoint already gets notified when a connection is closed before associated entities with EntityClientEndpoint.didCloseUnexpectedly().  I think part of the problem here is that we are equating a closed connection state with apis that are one or two levels removed in EntityRef and EntityClientEndpoint.  I don't think we want to directly associate closed state of the connection with state of the entity.  They are mostly the same but not completely.  I guess we can add external listeners that get notified at the same time as EntityClientEndpoint.didCloseUnexpectedly() but is it really necessary?

correction.  The correct method is EndpointDelegate.didDisconnectUnexpectedly().  Requester will use this callback


README

Anyone wants to take a go with making a proper README?
@adlersantos
@dinahmaghuyop
@apfestin
@cecillem
@joshualat

README being done by @apfestin via #16.


[proposal]TFJob condition for v1alpha2

TFJob condition proposal
Documents
Author：Penghui Yan, Jingtian Peng
    This document is mainly to discuss the management of the state of distributed model training for the tf-operator.
Background
    It’s very important to clarify the state judgment  of the TensorFlow training jobs. As we all know, the TensorFlow distributed mode is too flexible, so it becomes much more complicated to manage the state of TFJob. Analyzing  the best practice of TensorFlow jobs, we finally established a condition transformation of TFJob as below.
Tf-operator condition logic

Noun explanation：

Created: the default status of our default tfjob resource creation;
Running: when chief and all ps are Running;
Succeed: when chief and ps both run successfully
Failed: when chief or ps fails, the training mission fails;
Restarting: when all of the ps Running && (devoted to Pending) && RestartPolicy (OnFailed | ExitCode), shown as a restart, here feel, WORKER task should not be there are Always, and  if there are Always options, even after the success, also will continue to train, here is not very reasonable.PS task should be there are Never.
Chief: if the user does not have a significant set Chief, the default is worker0;

RestartPolicy:

Never: after successful or unsuccessful execution, quit directly, do not restart pod, and do not re-create pod;

OnFailed: after the execution fails, restart pod, after succeed, directly exit, do not restart pod, and do not re-create pod;

Always: restart the pod after successful or unsuccessful execution.

ExitCode: for 0, directly exit, do not restart pod, and do not recreate pod; When it is 1, restart pod;
Other status codes, exit directly, do not restart, and do not recreate pod.

Status code
description

0
Succeeded

1
General unknown error

2
Misuse of shell commands.

126
Command not executable

127
Unable to find command

128
Invalid exit parameter

128+x
Serious error in Linux signal x.

130
Command passed ctrl+c

255
Exit code out of bounds

@gaocegege @DjangoPeng @ddysher

@gaocegege @ScorpioCPH What are your thoughts on this proposal? Do you think we can complete it in time for our 0.2 release?

Hi @jlewi
What is the deadline of 0.2?

We want to release end of June. So we should be code complete first half of
June.
On Tue, May 8, 2018, 7:28 AM Ce Gao<EMAIL_ADDRESS>wrote:

Hi @jlewi https://github.com/jlewi
What is the deadline of 0.2?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kubeflow/tf-operator/issues/562#issuecomment-387421678,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAvcAyDiBCHXUf1EbSsDrJfCh6YnyTX_ks5twaubgaJpZM4Tp389
.

Personally, I think it has some potential risks
WDYT @yph152

Do we want to include this into our API?  We already have Conditions and TFReplicaStatuses in our API, it occurs to me that user should be responsible to decide the status, either it is the developer running the job, or a higher level system launching tfjob on behalf of developer.

@yph152
Do we still need this?

yeah!  I'm making it.

OK, feel free to open a PR and assign me to review!

OK。

Why doesn't the Running condition depend on the workers?

Why does success depend on PS workers being in running state? Why isn't chief exiting successfully sufficient?

Why doesn't the Running condition depend on the workers?
@jlewi Our default user will use worker-0 as chief.

Why does success depend on PS workers being in running state? Why isn't chief exiting successfully sufficient?

OK, I will modify it.

How does this relate to support of termination policies as discussed in the original proposal?
https://github.com/kubeflow/community/pull/30#issuecomment-371956143
Per #634 it looks like termination policies were never implemented.

I tried a job and it doesn't look like conditions indicating job is done are set.
This is using #637
apiVersion: kubeflow.org/v1alpha2
kind: TFJob
metadata:
  annotations:
    ksonnet.io/managed: '{"pristine":"H4sIAAAAAAAA/+yQz8oaMRTF932Ms44OSqGQbVH6B1vR0i5E5BrvOMHJH5I4RSTv/hHnE5Vv4wO4u3cm555zfmeQ1385RO0sJA7HLdet+z90YV91I2p9Q2MIHLTdQeLP9IfbQsBwoh0lgjzDkmFIGIqJw0DHgWo014M7cXkRPSm+M0AWiJ5VuZDqBftWK1p6VrF8+frt+2RahtD/iJAjgcAxUUhz12p1gsQv7jhAILHxLSUugutN5WwibTlEyFVZjaFSYQV/So2zEKg6CpVyO64aiptL6o0Lm77I0J+wFtCG9iV2L5Lj4Zf3PpBIbKMLlzICnWuPhmfuaFPvaMo4p9RA3pxu4suW13l9lV5z2lrvZ+SfIZs/XMtZYL58BDd+gXsO3L/fi5+TxSO8zy94z8DLOX96AwAA//8BAAD//6qI3IdKBAAA"}'
  clusterName: ""
  creationTimestamp: 2018-06-12T20:38:24Z
  generation: 0
  labels:
    app.kubernetes.io/deploy-manager: ksonnet
  name: master-is-chief-v1alpha2
  namespace: kubeflow
  resourceVersion: "1080051"
  selfLink: /apis/kubeflow.org/v1alpha2/namespaces/kubeflow/tfjobs/master-is-chief-v1alpha2
  uid: 8d883088-6e80-11e8-996c-42010af000af
spec:
  tfReplicaSpecs:
    CHIEF:
      replicas: 1
      restartPolicy: Never
      template:
        metadata:
          creationTimestamp: null
        spec:
          containers:
          - command:
            - python
            - /var/code/has_chief_or_master.py
            image: python:2.7
            name: tensorflow
            ports:
            - containerPort: 2222
              name: tfjob-port
            resources: {}
            volumeMounts:
            - mountPath: /var/code
              name: code
          volumes:
          - configMap:
              name: master-is-chief-v1alpha2
            name: code
    PS:
      replicas: 2
      restartPolicy: Never
      template:
        metadata:
          creationTimestamp: null
        spec:
          containers:
          - command:
            - python
            - /var/code/has_chief_or_master.py
            image: python:2.7
            name: tensorflow
            ports:
            - containerPort: 2222
              name: tfjob-port
            resources: {}
            volumeMounts:
            - mountPath: /var/code
              name: code
          volumes:
          - configMap:
              name: master-is-chief-v1alpha2
            name: code
    WORKER:
      replicas: 4
      restartPolicy: Never
      template:
        metadata:
          creationTimestamp: null
        spec:
          containers:
          - command:
            - python
            - /var/code/has_chief_or_master.py
            image: python:2.7
            name: tensorflow
            ports:
            - containerPort: 2222
              name: tfjob-port
            resources: {}
            volumeMounts:
            - mountPath: /var/code
              name: code
          volumes:
          - configMap:
              name: master-is-chief-v1alpha2
            name: code
status:
  conditions: null
  tfReplicaStatuses:
    CHIEF:
      succeeded: 1
    PS:
      active: 2
    WORKER:
      active: 4

@gaocegege pointed out to me on slack that Failed is not a permanent state. This doesn't seem right to me.
There should be terminal conditions corresponding to success and failure.
If we have an error and are retrying I think it makes more sense to have a Condition like "Error" or "Crash"

To summarize my discussion with @gaocegege in slack. At a minimum for 0.2 I think we need the following
I think that's sufficient.  For 0.2 I think we need the following.
i) The conditions Failed and Succeeded should indicate the job is completely done
ii) When the job enters the conditions Failed and Succeeded the pods should be deleted so resources are released
Additional conditions can be added later and the implementation can change.

For reference I checked what Job does
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.10/#jobcondition-v1-batch
It looks like it has conditions Complete and Failed. I think I prefer Succeeded and Failed. Its not obvious to me that Complete means succeded.

Filed #673 for the immediate work needed for 0.2

@yph152 What work remains? Specifically what work is needed in 0.3?

I think we can close it.
@yph152
Does v1alpha2 work for us now? Could I remove the redundant code?

Yes, we can close it and remove the redundant code. @jlewi @gaocegege


NullPointerException on startup with build 3.4.50

https://pastebin.com/t4L4JtFa
spongeforge-1.10.2-2477-5.2.0-BETA-2698
Build 3.4.49 has no issues.

Thanks for reporting :)

Quickly. Thank you!


Fixes fatal flaw in architecture design

The bird could have possibly died.

I do not agreed

please reopen ASAP

please


Fix to Promise CreateConnection

This is an adjustment to the promise create connection type. It should return a Promise. This change is based on the node-mysql2 docs and source:
async function main() {
  // get the client
  const  mysql = require('mysql2/promise');
  // create the connection
  const connection = await mysql.createConnection({host:'localhost', user: 'root', database: 'test'});
  // query database
  const [rows, fields] = await connection.execute('SELECT * FROM `table` WHERE `name` = ? AND `age` > ?', ['Morty', 14]);
}

I wasn't able to run the tests, but I adjusted them anyway. Let me know if anything doesn't work and I'll update the PR.

The tests are not designed to be run, they test TypeScript regressions in the usage.

@felixfbecker That makes sense. Updated the PR based on review.


Add a geocoder to the browse page

Typing in an address or post code to navigate a map is very handy. https://maplibre.org/maplibre-gl-js/docs/examples/geocoder/ is a starter. We need to pick a geocoding service and figure out pricing.

Yes and to the editing pages also please, was meaning to open an issue on this a while back. Great thinking Dustin!

Possible sources:

Nominatim: free but extreme quality problems from my tests
OpenCage
OS Places API
MapTiler
ArcGIS
https://geocode.earth/

Been working for a while, just closing old issue


.setFieldsRows(...).onDupUpdate is not a function

Can you add make the method: onDupUpdate concatenable even for the setFieldsRows method?
I would like to build this query:
INSERT INTO t (t.a, t.b, t.c)
VALUES ('key1','key2','value'), ('key1','key3','value2')
ON DUPLICATE KEY UPDATE
t.c = VALUES(t.c)

I would like to be able to do this:
var query = squel.insert()
.into('t')
.setFieldsRows([...])
.onDupUpdate('t.c', 'VALUES(t.c)')
.toString();

But it fails with: .setFieldsRows(...).onDupUpdate is not a function, I tried to look at the code but I can't understand how it's working, I assume the .setFieldsRows method should return the class instance to be able to concatenate other methods
I see that both cls.SetFieldBlock and cls.MysqlOnDuplicateKeyUpdateBlock extends cls.AbstractSetFieldBlock but with .setFields is working and with .setFieldsRows not.
Many thanks in advance and great tool, i'm using a lot in my projects.

@codekraft-studio

.setFieldsRows(...).onDupUpdate is not a function

I think the issue here is that you forgot to set the flavour of your squel.
You should have imported it like this:
const squel = require('squel').useFlavour('mysql');

@FerrielMelarpis  great! many thanks!


Unable to copy disk from one region to another using Storage Explorer

Storage Explorer Version:
Build Number:
Platform/OS:
Architecture:
Regression From:

Bug Description

Steps to Reproduce

Expected Experience

Actual Experience

Additional Context

@ashok624443 what error are you getting when you attempt the copy?

This issue resolved.
Thank you.
On Mon, Oct 19, 2020 at 11:08 PM Matthew Rayermann<EMAIL_ADDRESS>wrote:

@ashok624443 https://github.com/ashok624443 what error are you getting
when you attempt the copy?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/AzureStorageExplorer/issues/3680#issuecomment-712323375,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACPB52WQPMYHUMFRQ3NFXGLSLR2SLANCNFSM4SRBJPGA
.


Prevent void deaths

Should add a feature like Warzone has to where it bounces you up from the void (probably Y:-64 since that's when you start taking damage) but not too high like Y:0 since people still need to build and fly underneath maps.


KIP-446: Add changelog topic configuration to KTable suppress

add KIP-446: Add changelog topic configuration to KTable suppress docs
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@mjsax
Should I do it like this way?
thank you!


Use a new KMS to create a DID by VDRI

Now the legacy one is used, what results in producing of Public Key which cannot be later found in the new KMS registry.

Yeah - I've unfortunately had to use the legacykms as well as the new one when creating DIDs.


Translate to english

Hi, all,
Is it possible to translate to English docs and README? It's great for the project.
Best Regards,
Renan

Against: English is not a universal language. US tech companies have made it an "unofficial standard", but translating everything into one or more languages is costly and would only slow down the documentation process. Any translated documentation will also quickly be out-of-date whenever the Chinese documentation is updated. There is no problem running the URL through Google Translator.

For: it would be better if it were in English. All source code + comments are in english. The source is also kept on Github which is owned by an American company with millions of English developers working on it. The english docs could easily be translated to Chinese through google translate.

Did you remember the request for removing all Chinese projects from GitHub Trending?
Because of the special condition of being IT developers (basic English skills, almost all programming languages are in English because of charsets), I think making English the default language is more helpful to build a better open-source community.
This is because of the special IT industry, but not which language is better.

For: Huawei is a worldwide enterprise developing an operating system with the intention of being used by people around the world. English is the defacto standard for multinational business dealings and cross-country development. If Huawei wants this project to succeed they will need to provide english documentation at the least and preferably multilingual documentation.

I've sent a pull request with README translation (#776 ). If maintainers agreed, I'll keep this work for other documents.
Note: I'm not fluent in Chinese, I'm using google translate and analyzing the source code for this work.

Hello everyone,

@rprata:
If maintainers agreed, I'll keep this work for other documents.

Sadly, it looks like there are no maintainers currently.
The only LiteOS organization's repository that can be considered active is LiteOS_Lab.
As for me, this whole project doesn't look like a result of work of a giant corporation.

I agree that at least base documentation should be in English. Chinese is a hard language for translator, so translated technical documentation is barely readable... As well as SDK documentations for HiSilicon platform. All these things make impossible to improve software by community. And as we all know, Chinese people have their own vision for software development, which is not so good.


Silent failures when calling helpermodule.run from tasks

In the spirit of https://mill-build.com/mill/Extending_Mill.html#_using_scalamodule_run_as_a_task (Thanks @lihaoyi!), I've tried to call the run task on a helper module from a task in my main module.
My build compiles, and my main-module task seems to succeed, but the call to helper-module's task.run() seemed silently to be ignored. Messing around, the call to run seems to succeed if it is the last instruction in (or constitutes the result of) its task, but silently fails otherwise.
Here's a minimal reproduction (mill v0.11.6):
build.sc:
import mill._, scalalib._

object helpermod extends JavaModule {}

object mainmod extends JavaModule {
  override def moduleDeps = Seq( helpermod )

  def runHelper = T {
    println("Before run()")
    helpermod.run()
    //println("After run()")
    //PathRef(T.dest)
  }
}

helpermod/src/pkg/Main.java:
package pkg;

class Main {
    public static void main( String[] argv ) {
        System.out.println("Hello!");
    }
}

Like this, everything works beautifully:
% mill mainmod.runHelper
[build.sc] [49/53] compile
[info] compiling 1 Scala source to /Users/swaldman/development/playpen/mill-wont-run-submodule/out/mill-build/compile.dest/classes ...
[info] done compiling
[build.sc] [53/53] methodCodeHashSignatures
Before run()
[24/38] helpermod.compile
[info] compiling 1 Java source to /Users/swaldman/development/playpen/mill-wont-run-submodule/out/helpermod/compile.dest/classes ...
[info] done compiling
[37/38] helpermod.run
Hello!
[38/38] mainmod.runHelper
% mill mainmod.runHelper
[37/38] helpermod.run
Hello!

But if you comment in either or both of //println("After run()") or //PathRef(T.dest), the call to helper module run seems silently to be ignored.
% rm -rf out
% mill mainmod.runHelper
[build.sc] [49/53] compile
[info] compiling 1 Scala source to /Users/swaldman/development/playpen/mill-wont-run-submodule/out/mill-build/compile.dest/classes ...
[info] done compiling
[1/1] mainmod.runHelper
Before run()
After run()

I'm pretty sure the helper module code is not being run. It's not just a streams-getting-swallowed issue. I've tried having the Java code write a file. The file appears when the call to run is the last instruction, does not appear otherwise.
You can also see the issue in mill plan. When the call to helpermod.run() is the last instruction, a lot of steps are planned. When either of the subsequent lines are uncommented, it's just...
% mill plan mainmod.runHelper
[build.sc] [49/53] compile
[info] compiling 1 Scala source to /Users/swaldman/development/playpen/mill-wont-run-submodule/out/mill-build/compile.dest/classes ...
[info] done compiling
[1/1] plan
mainmod.runHelper

I've also tried letting math.random() be the final line of the task, for fear that somehow the constant task result misleads mill to skip the task. mill also fails to plan or execute helpermod.run() if math.random() is the result of mainmod.runHelper.

Thanks @lolgab!
I needed an extra set of parentheses after the call to run().

As a rule of thumb: To call a target you always need one pair of parenthesis more, than the definition of the target has.
Targets and Inputs are defined with zero parens, so you need one pair. Commands have one parameter list, so when called you need to use two. Tasks (anonymous task) may have any count or parameter lists. The extra pair of parentheses ( () ) are the actual target application .apply(), which will return the result.

@lefou Thank you! This is very helpful.
There are aspects of all this that still confuse me -- the fact that the arguments to run have to be an anonymous task, T is not in scope in arguments for e.g. T.dest but T.task(...) is in scope remains a bit obscure to me. But, despite my not-quite-full understanding of things, mimicking the example in the docs, things seem to be working now!
My weird three-levels-of-code-generation via ant for a library initially built in 2002 is now much more concisely and simply reproduced in mill. It might become practical for me to maintain this library again.
Thanks again @lefou @lolgab @lihaoyi!

There are aspects of all this that still confuse me -- the fact that the arguments to run have to be an anonymous task, T is not in scope in arguments for e.g. T.dest but T.task(...) is in scope remains a bit obscure to me.

Unfortunately, I'm not quite sure what you mean here. Anonymous tasks also have a context that gives you access to a dest. The essential point is, that anonymous tasks will be executed in the context of their outer cached task, in your case the command. So, T.dest of an anonymous task you use in a Command will be identical to the T.dest of that command.

What follows is me responding by making an exercise of answering all my own questions! Please don't feel like you have to devote any time to this. I did manage to answer most of my questions. Only the last two paragraph contains stuff that does continue to puzzle me, mysteries of mill internals.
Thank you for all of your help!

Oh, my confusion was naive, I can answer my question myself just by reviewing the definition of object Target to which val T is assigned. Reviewing the methods of object Target, I can see that T.dest (or Target.dest) requires an implicit ctx, while T.task does not, requires only an explicit => U (that will be implicity converted to Result[U].)
But this was the first time I'd called a command from a task, so things seemed a bit weird!

At first I did not realize that I was defining a dependency of my task, not just executing instructions in-line within my task
Once I did get that, I understood why stuff life T.dest(...) didn't work.
But, naively, I was thinking of task context not in terms of the actual-but-invisible implicit ctx, but in some sense having access to utilities of T. Stepping back this is dumb: I write T{} or T.persistent {} or T.command {} at top-level all the time. Nevertheless, what surprised me, struck me as weird, as that I did not have access to T.dest where I did have access to T.task. Again, this was dumb of me, but perhaps I'm not alone in this kind of mishypothesis. This was the first time I've ever used T.task to create an anonymous task, so it wasn't intuitive to me whether T.task was like T.perisistent, callable at top level, of T.dest, only accessible within a context. Since the reason I needed T.task was because I couldn't write T.dest, it surprised me that this other T. resource worked.

This is all pretty clear to me now. Part of your explanation still is not, because the role of anonymous tasks is still new to me.

Anonymous tasks also have a context that gives you access to a dest. The essential point is, that anonymous tasks will be executed in the context of their outer cached task, in your case the command.

I make an anonymous Task[Args] object, effectively at top-level even though syntactically it's nested within a Task. That's fine and necessary, and users of mill should get that tasks within task-ish things — Target calls — are upstream dependencies, not ordinary function calls in sequence.
(Sometimes I wonder if apply() was the right choice, rather than some more explicit def ! or something. The looks-like-just-a-function-call is comforting perhaps to first-glancers, but maybe a bit misleading?)
So I have a Task[Args] which I defined logically at top-level, independently of any task. I simply provide that to JavaModule.run(args: Task[Args]), which is straightforward enough.
(A bit surprisingly straightforward! I actually expected a bit more magic here. I expected I'd be able to use the same pattern to call a runMain either with just Task[Args] or with (String, Task[Args]), and was surprised only run() works. I guess runLocal would too, since it is defined as accepting Task[Args], but no runMain variations, which are defined as accepting (String, String*).)
How does this Task[Args] object, constructed in advance and simply passed as an argument, inherit some outer task's context?
Writing this out, I can almost answer that for myself. Anonymous tasks like other tasks are given effect only when that effect-giving def apply()(implicit handler : ApplyHandler[Task]). So conceptually, I think, I should think that an anonymous task inherits its task context from the task in which apply() is invoked upon it, right?
The ApplyHandler logic confuses me, because I think we'd want to capture a Task[T] but it looks to me like it unwraps that to just T? And the implicit ApplyHandler[Task] exists as a @compileTimeOnly construct, but then calling the effect-giving apply() requires a concrete ApplyHandler[Task] to call def apply[T](t: M[T]): T, an abstract method which as far as I can find is never defined by a concrete implementation?
It is here I am finally out of my depth, even when I try to walk myself carefully through the source code!

The @compileTimeOnly is used to provide a nice error message where some T-API used in inappropriate locations, e.g. a T.dest outside of an T{ }.
Since the concept of the ApplyHandler is something that's only used in the macro code, you won't find any referenced to this code elsewhere. It's a while since I studied the macro code, and unfortunately, there are no comments explaining what's going on, so currently, I can only guess myself, but I think the ApplyHandler stuff is unrolled in the macro and replaced by something else.


Update filterByTypeCallback

Closes #2959
We had a special method for filtering type in the ReconciledObjectsTable that isn't needed anymore - especially since it breaks things now. Removed. I removed the specific test for it as well (we're already testing filtering type as a string from key 'type'). Also removed from exports - I checked the enterprise repo and it's not being used there so we should be good.

Code LGTM. @joshri Why don't we need the method for reconciled objects?

The method was looking at a specific field - but all reconciled objects have been slotted into the FluxObject class, so we can just look at the type field and be good to go!


Option to add branch protection rules

It will be interesting to have an option to use the GitHub feature "Branch Restriction". In some cases, you would like to block a list of branches across several repositories base on a patter match

I'm not quite sure I understand what function Yoda would do in this context? Yoda works on GitHub issues.. ?

Nothing related with GitHub issues. This is related with Git Branches. It should be easy... there is an API:
https://developer.github.com/v3/repos/branches/#update-branch-protection
https://developer.github.com/v3/repos/branches/#get-branch-protection
https://developer.github.com/v3/repos/branches/#delete-branch-protection

Right. Yoda is primarily focused on GitHub issues (and associated things like labels and milestones). Code-related stuff (including branches) must be the focus of other tools. Closing.


Unable to migrate the calculated tables into direct lake mode from import mode semantic model

Describe the bug
I'm trying to migrate existing import mode semantic model into direct lake mode. We have one calculated table which is created using Calendar() DAX function. While doing the migration , we are able to migrate the calculated table into Lake house but failed to load the same calendar table into direct lake mode semantic model. I'm noting down the reference links below which I followed along with the screenshots. Could you please investigate the issue and provide me the solution ?
I have followed all the steps which are mentioned under below links
https://github.com/m-kovalsky/fabric_cat_tools/blob/main/Model Optimization.ipynb
https://data-mozart.com/migrate-existing-power-bi-semantic-models-to-direct-lake-a-step-by-step-guide/
![Calculated table error](https://github.com/m-kovalsky/fabric_cat_tools/assets/168816400/60c48825-35f3-42c5-b4d6-eb95b9577670

I presume this calculated table also has calculated columns. Calculated columns are not supported in the migration, thus this table will not be supported in migration. The Calendar table would be created in your lakehouse but it would only contain the original 'Date' column created and not the additional calculated columns thus it would be unable to be migrated.

HI @m-kovalsky ,
Thank you for your prompt response on my query. Calculated tables will obviously contains the calculated columns which are created using the DAX functions. Do you mean that first I need to create this date table manually in lake house and then bring it up to the direct lake semantic model?

Calculated tables will not necessarily have calculated columns. In the case of a calendar table then, yes it is highly likely but in other cases it is not necessarily the case. Yes, you will need to create the calendar table in the lakehouse and then add it to the direct lake semantic model.

Migrating the calculated columns from a calculated table which uses the CALENDAR function is now possible in 0.4.0.

Thank you for letting me know @m-kovalsky . Is there any script available to fetch the no.of parquet files/ no.of row groups/ row counts from the semantic models in Fabric ? looking for some help here. Please let me know if any script is available.
Thanks

You can use the get_lakehouse_tables function and specify the optional parameters as True (extended, count_rows). This will tell you if any of your lakehouse tables will hit the guardrails by comparing lakehouse table stats with the guardrails for your capacity's SKU.


chore(*): bump version to 0.5.1

Diff is: https://github.com/fermyon/cloud-plugin/compare/v0.5.0...main

Does https://github.com/fermyon/cloud-plugin/blob/main/spin-pluginify.toml#L3 or https://github.com/fermyon/cloud-plugin/blob/main/.github/workflows/audits.yml#L12 need to get bumped also?

Thanks for double-checking @adamreese.  We are bumping the former (spin-pluginify.toml) but the latter is the cargo vet version (happens to equal the current 0.5.0 cloud plugin version)

👍 Just thought I'd check


out of memory after update

i get an error with freeu-advance(encoder_hidden_states) so i update this node
freeu-advance  error fix but i can't work with same workflow that work just fine bofore
it keep saying out of memory
this my workflow i use ipadapter an 2 controlnet work just fine

now if i want same image size i have to use only ipadapter or controlnet cant use both
if i wan to use both ii must reduce image size very low from  normal workflow
this is error image

otherthing i notice that it saying
Currently allocated     : 7.02 GiB(or 6.8-6.9)
when my GPU
Device limit  is   8.00 GiB
when i use only controlnet or ipadapter it will use full 7.9-8 GiB vram is just so weird
i check ipadapter and controlnet node it not update for a week
only 2 node that i update today it this node and freeu-advance
but i delete   freeu-advance still get dame error
not so sure if it about  new freeu  integrated  into diffusion or not.
It really bug me out so much i cant work with same workflow i cant rollback either so sad.

Nothing in terms of memory management changed in my code. Since 8GB VRAM cuts it so close to requirements when using CN/IP Adapter, even having something open like discord or chrome might push your PC over the edge.

I'll look into if there is anything more I can do in my code to help even a little bit this week in terms of memory management, but I can't promise any significant improvements.

Thank you.
I just bug me out because my workflow just fine before suddenly it not work at all.
From more test look like i just cant use controlnet  with ipadapter anymore even at very low size image work flow
I need to reduce batch size to like 4-5 so it work but it no use for animatedriff.
I try with old version comfyui but still oom.


HBASE-24665 all wal of RegionGroupingProvider together roll

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 52s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

-0 :warning:
test4tests
0m  0s
The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ branch-1.4 Compile Tests _

+1 :green_heart:
mvninstall
9m 34s
branch-1.4 passed

+1 :green_heart:
compile
0m 50s
branch-1.4 passed with JDK v1.8.0_252

+1 :green_heart:
compile
1m  2s
branch-1.4 passed with JDK v1.7.0_262

+1 :green_heart:
checkstyle
2m 11s
branch-1.4 passed

+1 :green_heart:
shadedjars
3m 36s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 49s
branch-1.4 passed with JDK v1.8.0_252

+1 :green_heart:
javadoc
0m 49s
branch-1.4 passed with JDK v1.7.0_262

+0 :ok:
spotbugs
3m 46s
Used deprecated FindBugs config; considering switching to SpotBugs.

+1 :green_heart:
findbugs
3m 43s
branch-1.4 passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
2m 29s
the patch passed

+1 :green_heart:
compile
0m 51s
the patch passed with JDK v1.8.0_252

+1 :green_heart:
javac
0m 51s
the patch passed

+1 :green_heart:
compile
1m  0s
the patch passed with JDK v1.7.0_262

+1 :green_heart:
javac
1m  0s
the patch passed

+1 :green_heart:
checkstyle
2m  3s
the patch passed

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
shadedjars
3m 25s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
hadoopcheck
2m 49s
Patch does not cause any errors with Hadoop 2.7.7.

+1 :green_heart:
javadoc
0m 38s
the patch passed with JDK v1.8.0_252

+1 :green_heart:
javadoc
0m 49s
the patch passed with JDK v1.7.0_262

+1 :green_heart:
findbugs
3m 32s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
124m 13s
hbase-server in the patch passed.

+1 :green_heart:
asflicense
0m 38s
The patch does not generate ASF License warnings.

170m 18s

Subsystem
Report/Notes

Docker
Client=19.03.12 Server=19.03.12 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-2023/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/2023

Optional Tests
dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile

uname
Linux 81107a638d46 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
/home/jenkins/jenkins-slave/workspace/Base-PreCommit-GitHub-PR_PR-2023/out/precommit/personality/provided.sh

git revision
branch-1.4 / 1e6594f

Default Java
1.7.0_262

Multi-JDK versions
/usr/lib/jvm/zulu-8-amd64:1.8.0_252 /usr/lib/jvm/zulu-7-amd64:1.7.0_262

Test Results
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-2023/1/testReport/

Max. process+thread count
4169 (vs. ulimit of 10000)

modules
C: hbase-server U: hbase-server

Console output
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-2023/1/console

versions
git=1.9.1 maven=3.0.5 findbugs=3.0.1

Powered by
Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.


LIST and math

[FUNCTION f_testsubedit]
local.list = "0004|00080"
serv.list.TEST.add "<local.list>"
serv.log <serv.list.TEST.0>
return 084
but i want string

Uhm, seems like "" ignored by local directly, need to take a look of it.

list are not separated by ","?


[#877] Format and lint core-model module

Purpose

Applying UI linting and formatting to the core-model module. Removing the core-model module from ui/.eslintignore and ui/.prettierignore and fixing formatting and lining.

You're welcome, @bossenti. Thanks to you, @smlabt, and @tenthe, for your continuous support.


Complete SQL homework 2

What changes are you trying to make? (e.g. Adding or removing code, refactoring existing code, adding reports)
Complete SQL homework 2 by filling homework_2.sql file.
What did you learn from the changes you have made?
Was there another approach you were thinking about making? If so, what approach(es) were you thinking of?
I have implemented 2 approaches for two tasks.
Were there any challenges? If so, what issue(s) did you face? How did you overcome it?
I did not have much experience working with CASE close, so had to view documentation.
How were these changes tested?
All changes were run locally.
A reference to a related issue in your repository (if applicable)
Checklist

[x] I can confirm that my changes are working as intended

HW2 marked.


Adding test results path and app url to TRX

Currently app URL and test results path is not specified in the .trx file.
In an attempt to improve .trx file >> adding these details.
Proposed Solution

Add app url and test results path as part of ResultSummary within a test run. Keeping in mind the schema http://microsoft.com/schemas/VisualStudio/TeamTest/2010

XML change would look like this

TRX opened in Visual studio looks like this

Also removed Testcase name within the unittest results.

Since the testcase name is already present in the UnitTestResult attribute

Checklist

[x] The code change is covered by unit tests. I have added tests that prove my fix is effective or that my feature works
[x] I have performed end-to-end test locally.
[x] New and existing unit tests pass locally with my changes
[x] My changes generate no new warnings
[x] I used clear names for everything
[x] I have performed a self-review of my own code

Optional but nice to have - Consider adding unit tests as well to validate and compare those JSON string objects being produced inside code. That way these can be easily caught in the future if we happen to make further changes to those strings.


MNT: hook for filestore mixin make_filename

Need to be able to:

Modify the filenames being saved through FileStoreBase (NFS+PIMS choke with hundreds of thousands of files in one directory)
Create the directory and set permissions

With this small change, I can do both in my subclass. For (1) I'm making a subdirectory with the start of the filename uid since I don't have access to any scan information during stage().
P.S. @danielballan here's an opportunity to disagree!

Is there an obvious way to inject information (like the runstart uid) into stage?  One way would be a configure message to the AD before the stage?  Another would be to start allowing stage to take arguments.

Other wise :+1:

I do other per-run configuration-related things in detector set methods. That's the only place in the current design it'll go as far as I can tell.

I think you should be doing that through configure, if you set a detector in the middle of a run you can make the descriptor lie about it's settings.

Well, (un)stage used to be (de)configure, so set was the only option... I suppose you're correct post-refactor - my old set should become configure.

Ah, sorry I lost track of which version of ophyd you ar eworking against.


中文乱码，chinese is show error!

Expected behavior
No response
Actual behavior
No response
Steps to reproduce the problem
中文乱码

JMeter Version
5.5
Java Version
java version "1.8.0_361" build 1.8.0_361-b09
OS Version
Mac OS X 10.14.4 18E2035

Can you try changing look and feel?

I try change style, it is ok.

Can you try changing look and feel?

thank you!

Could you please tells us which styles work and which do not?

dark style is error, system style is ok.


Initial orientation

Hello Gabriel,
I just discovered your library today and it looks promising.
I am wondering what should be changed in the MPU6050::Execute() function, to take into consideration when the IMU is mounted vertically (with the Y axis pointing up/down instead of the Z-Axis).
I think the calculation of the angleAccZ and angleZ variables should take gravity into consideration instead of Y axis in this condition.

Hi @intensite, thanks for writing.
I don't think this should be an issue if, during the calibration process, the MPU is set to whatever position you'd like. But anyway, if that's the case, you could try the new implementation of the calibration method on the dev branch. Maybe that would solve things for you.


get_tweet_by_id() throws IndexError

  File "/home/victoria/projects/get_tweets.py, line 29, in get_tweet
    tweet = client.get_tweet_by_id(tweet_id)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/victoria/projects/venv/lib64/python3.11/site-packages/twikit/client.py", line 1398, in get_tweet_by_id
    entries = find_dict(response, 'entries')[0]
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^
IndexError: list index out of range

here's how I create the client:
client = Client("en-US")

client.load_cookies("cookies.json")

I"m trying to get a tweet with id<PHONE_NUMBER>57401601
it's possible that the tweet I'm trying to get was deleted maybe - in that case maybe a different error would be better than IndexError?

can't reproduce.


[WIP] Information Theory Module

The new module has functions to estimate information theory parameters. A function to quickly make binned spike trains is also added.
Remaining Work :

[ ] Documentation and references
[ ] Example guide
[ ] Test cases
[ ] Plotting across electrodes module

Codecov Report

Merging #63 (aac5663) into update-0.1.1 (bf95d89) will decrease coverage by 0.17%.
The diff coverage is 38.98%.

@@               Coverage Diff                @@
##           update-0.1.1      #63      +/-   ##
================================================
- Coverage         41.75%   41.57%   -0.18%
================================================
  Files                28       29       +1
  Lines               855      914      +59
  Branches             95       95
================================================
+ Hits                357      380      +23
- Misses              493      529      +36
  Partials              5        5

Flag
Coverage Δ

unittests
41.57% <38.98%> (-0.18%)
:arrow_down:

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

Impacted Files
Coverage Δ

miv/statistics/spiketrain_statistics.py
72.72% <12.50%> (-19.28%)
:arrow_down:

miv/statistics/info_theory.py
42.00% <42.00%> (ø)

miv/statistics/__init__.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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

@skim0119 I have updated the documentation for information theory module. I'll put visualization in a separate pull request as it still need some work and is not limited to info theory module.


publications archive: filtering is slow for organizations with 1000s of publications

Hi
First of all many thanks to all the people doing the effort to make this the ultimate website Hugo theme for academics!
For our research group we implemented the Academic 4.1 theme and the publication list. This works very good, except the list contains 1000 publications and it doesn't respond very good anymore. I have lags of 5 seconds and more when you change a year and back to the date menu (especially on smartphones where the power is limited). This is of course because the whole list is rendered instead of working with a smaller 20-30 rows subset list. Also the viewer of the publication list only sees about 10 publications at a time and so the rest of the 99% viewport are cpu cycles wasted, which causing the 5 seconds delays of course.
Is there someone who can handle this more efficient?
Thanks for any help!
Philippe

10 publications at a time

The paginate setting in config.toml controls the number of items displayed.

Is there someone who can handle this more efficient?

Academic (and Hugo) is a static website system, so dynamic filtering must occur on the front end (i.e. in the user's web browser). The filters are processed by Isotope, which is an optimized library for filtering. This should be fine for personal websites, but may take longer to compute when handling organisations with 1000s of pages or when viewing from devices with limited CPU.
There are open issues in the Hugo repo to provide better support for this kind of scenario, such as by Hugo generating a complete RESTful API - so you may wish to add your use case there to help prioritise these Hugo issues.
In the meantime, we could consider automatically disabling filters when there are a large number of items.

The paginate setting was set to 10 in the config.toml, but it doesn't seems to do anything? Also, in the content/publication/_index.md it's doesn't change a thing.
Disabling filters? But then there are no listboxes with date and type to select as well? At least we should have some filtering especially with large publication lists.

@phiser678 how many pages does your site have in total (not only publications) and how responsive is the in-built site search engine (not the filter search on publications page) when searching for a publication?

              |  EN

+------------------+------+
Pages            | 4152
Paginator pages  |  257
Non-page files   | 1178
Static files     |   11
Processed images |    1
Aliases          |  768
Sitemaps         |    1
Cleaned          |    0
The lag depends on the processing power of the client, so  old computers and smartphones have more lag.
You can try it out yourself, this is our site https://ipi.ugent.be .
Thanks again!


Installation procedure

Is this adhoc kext included in the app a standalone solution for screen & keyboard brightness? I mean, do I need any prerequisite kexts or SSDT to go along with this on my Zephyrus GU502?

Figured it out, thank you.

Figured it out, thank you.


Question: order of the input data?

I am trying out your package and have a question regarding the order of the input data array. Is the array ordered with latest prices first or last?

It's latest date last, see the example data in the tests: https://github.com/d3fc/d3fc-technical-indicator/blob/master/test/data/input.csv

Thanks, a lot. That's how I have it now but just wanted to make sure.


cannot add blank sprite (uses previous sprite texture)

it does not seem possible to add a blank sprite unless it is the first sprite created
http://phaser.io/sandbox/vXVjSgyw/play
if game.add.sprite (0,0) is the first call, then the sprite will be blank (so you can add Phaser.Graphics to it etc)
however if it is called with no texture supplied, after another sprite has been used with a texture previously, it uses that texture (although not at the same dimensions)

for anyone reading. you can currently use
mySprite.texture.baseTexture.skipRender = false
and no texture will be shown

Closing as this is fixed in the dev branch.


Cline icon desapear from primary sidebar on VScode

Which API Provider are you using?
Anthropic
Which Model are you using?
claude 3.5 sonnet
What happened?
I made may be not that is expected , but the icon of Cline is not any more in the primary sidebar and so I cannot use it .
Steps to reproduce
1.start cline
2.try to move on the left of the screen
3.I do know
then no more icon of Cline !
Relevant API REQUEST output
No response
Additional context
No response

You may need to right click the sidebar to re-show Cline. The vscode panel organizer is a bit confusing!

not closed  : " right click the sidebar " already tried : no solution - still no icon


Update to 34.0.0 and update changelog

Which issue does this PR close?

Closes #3755.
Rationale for this change
Biweekly Release

What changes are included in this PR?
Update version to 34.0.0 and add changelog
See rendered changelog here: https://github.com/spaceandtimelabs/arrow-rs/blob/prep_for_34.0.0/CHANGELOG.md

Are there any user-facing changes?
Yes

@alamb @tustvold


gpkg-dev/cgt: include dir fix

close #80

Another error was found: for some unknown reason, cgt/i686 cannot find ld, but it is available.


Support new daemon startup process

The Issue
When https://github.com/lbryio/lbry/pull/1164 is merged, the status calls returned to the app will be different. From changelog:
STARTUP_STAGES from status API and CLI call, it instead returns a dictionary of components along with their running status(this is a potentially breaking change if STARTUP_STAGES is relied upon)
This might be a good opportunity to make the startup messages more user friendly.
Suggested Solutions
Tell us your suggested solutions if you have any.
System Configuration

LBRY Daemon version:
LBRY App version:
LBRY Installation ID:
Operating system:

Anything Else

Screenshots

@tzarebczan Is this different from #1686 ?

Oh. Just saw you referenced a PR, which has been reverted.


lsmem: Add more options

Some tests would be nice, but overall good work :)

I am so struggling on how to implement the tests for the main program. The status of CI machine should not be stable. Then we won't have a fixed result to compare with assert!

I am so struggling on how to implement the tests for the main program. The status of CI machine should not be stable. Then we won't have a fixed result to compare with assert!

Writing tests is a science in itself ;-) A strategy for integration tests is to focus on the things that remain the same from machine to machine, like the output format. It's not perfect, as you won't notice if the values are wrong.

It may take some time to think about it 🧐🧐

Thanks!

thank you too


Compile time type (dataType) checking

We've added the type (dataType) syntax and parsing to Adaptive Script, but we've not put in the compile time type checking. The runtime type checking is in place and seems solid, so now it is time to catch these type errors sooner, when possible, at compile time.
Although not a requirement for this issue, a side-effect may be that this will make compile time optimization easier such as picking the correct polymorphic function at compile time when the data type of parameter 1 is known and evaluating pure functions at compile time when they have pure parameters.

In the context of error messages, here's an example of a message that could be slightly changed to read better by simply enclosing a literal in quotes:
Unknown built-in function this -> Unknown built-in function 'this'

Issue #42 addresses @JeremyGrieshop message above about error messages.

New vocabulary words involved in compile time optimization: memo, memoized, and memoization.
We will use adaptive flags to control type checking and whether to use optimization during evaluation. The initial flags are:
compile:noImplicitAny
evaluate:unoptimized


templates/index/twitter: Remove the Twitter embedded timeline

This adds the link and the Mastodon feed will have all the
important announcements anyway.
No need to give Twitter more ability to spy on all traffic from our
site
Review: Consider if we do, in fact, want to romeve the timeline.

From what I can tell, all <script>:s that refer to twitter are commented out, they are only in templates/twitter.html.  (the html comment spans all three lines).  Yes, it should be removed, but that can be done as part of a larger change.

Ah yes I did not see the edit on line 10. Yes, this makes it inactive.

Let me add something to the PR:

I will remove the outcommented code
I will rearrange the page to have better visibility and space use

Mastodon column is now more visible
Twitter does not need own column anymore


Integrate Netron into other web service (scaling issues)

What is the best/most stable way to integrate Netron into an existing service?
We were trying to integrate Netron into an existing webservice, running Netron in a separate process and integrating the Netron output page into the main page. Unfortunately this caused trouble. Usually the Netron server would not respond, even if only run locally with one user.
I believe the main trouble is that Netron uses the build-in python HTTP Server which does not handle multiple/parallel requests very well (or at all). This seems to be a problem even running locally, since e.g. Chrome might send multiple requests for one user (Firefox was more stable in our case). This problem can be easily reproduced by accessing the Netron output directly in Chrome and repeatedly clicking reload. The reloading will get stuck.
Any hints how to work around this with the current implementation of Netron? I currently only see the solution to change the Server Netron uses, but I'm hoping I missed smth :/

Would be great if you can dig into this and come up with a fix. Which OS does this happen with? Clicking reload in Chrome doesn't seem to repro the issue.

Thx, it seems the ThredingMixIn fixed the issue! (was happening on ubuntu 16.04 with Chrome 65.0.3325.181)


Feature/explosive enemy/#86bzebvjn

Enemy Explosive Update:

VFX Added
-Pool logic Added
Updated gameplay

Task linked: CU-86bzebvjn Explosive-Electric Enemy


feat: background removal choice

fix[bug]: Parameter names mismatch with InverseModelling
fix[example]: moved function
fix[spelling]: spelling in docs
feat: Add possibility to use quantile/median for background removal

Can you resolve the conflict and push again? I think it is OK to merge apart from this.

@RainerHeintzmann I think that your package is very useful! Atleast for me it was. I am working on a package TransferFunctions, but it is on and off based on what functionality I need at the time. I wanted to ask you whether it would be OK for you if I adapt and refactor the code from this repo into it... I will of course cite you in the docs when I do that...

Would that be OK with you?

Can you tell me more about the goal of the package. I assume that you are aware of the PointSpreadFunctions.jl package?
If you need the functionality of PSFDistiller.jl can you not just Import it instead? Copying code seems a bad choice for maintainability.

Thanks for the reply. Yes, sure, lets continue discussion starting second week of January.

Hello @RainerHeintzmann, I am ready to continue the discussion now. As for the SIM that we have discussed, I have implemented the Wiener filter reconstruction and a inversion/optimization reconstruction based on DeconvOptims invert function. I did not include it in the package that I was writing at present time, because it depends on my implementations API of the transfer function, that may be subject to change on the basis of our discussion I presume. I think it would be best to schedule a video call meeting to talk about our respective ideas and visions for the API. Does that sound good to you? What time and day would work for you?


Give hound a trial run?

houndci.com

I'd recommend to use CircleCI. We had some research done recently for our main ecosystem on may main work and CircleCI is just awesome to say the least. I moved my personal projects there and super happy about it.
In our workflow it creates artifacts, calls Coveralls, creates reports. Then pushes artifacts to Bintray and so on.
See example of my personal project https://circleci.com/gh/in-flux/in-flux

Let's do that. HoundCI is just a cloud style checker. =)

Will do

Hound uses JSHint, which does not have full support for ES6. And actually we don't really need it since our codestyle is checked anyway. The problem with Travis, it does not have any artifacts stored, so you cannot see the results of those tests in the UI.
Today CircleCI has a major outage as a result of GitHub outage earlier. It works but very slow. Will add it later, when it starts working normally.


New release

Hi there,
with the last updates would it be possible to cut a proper tagged release?
Thanks, Martin

A new release would be great, yeah.

New release would be appreciated!


Add autocompletion support for reference links

Today, you can autocomplete URL links. For example, typing this will trigger completion starting at "bar":
[foo](##bar)

However, you currently can't autocomplete reference links. It would be great if you could do that, as well. In particular, in this example, completion should start at the first "bar":
[foo][bar]

[bar]: ./bar.md#baz

This would make working with Markdown files that use reference links much easier.

Unless I've misunderstood, this already works:

You may need to manually trigger the suggestions in this case though. In VS Code, you can use ctrl+space for this

@mjbvz Great, glad to hear the functionality is already in place!
Do you think it'd be reasonable to say that there is still an issue here, since the suggestions are not being triggered automatically? I didn't expect to need to trigger them automatically since they are automatic for URL links. Is there something that prevents automatic suggestions in the reference link case?

This was a design decision. We don't auto show suggestions whenever you type [ because you don't always want to create a reference link (or maybe you're typing the text of a reference link, not the reference. Ppopping up the suggest widget automatically in these instances could get annoying

@mjbvz Is it possible to take context into account? I can see why you wouldn't want to pop it up every time you press [, but it does make sense to pop it up on the second [ in [foo][ - at that point you're almost certainly typing the reference portion of a reference link. Even just doing it after ][ would eliminate most false positives, I'd think.
FWIW, I noticed a bug with the ctrl+space approach, as well. Pressing ctrl+space after [foo][ pops up link reference suggestions, as expected. However, pressing ctrl+space after [ does not. This prevents you from using suggestions to create a collapsed reference link ([foo][]) or shortcut reference link ([foo]).


Use Mean-Square Error as objective

I wonder why you use cross-entropy loss rather than mean-square loss for a regression problem? Have you compared the difference? thanks a lot !

I wonder why you use cross-entropy loss rather than mean-square loss for a regression problem? Have you compared the difference? thanks a lot !

Thanks for bringing up this point. I indeed tested both ways to check the performance. Seems cross-entropy loss works better with this model, and accordingly the outputs will be different cuz in this case it will be a classification problem rather than a regression problem. If you are interested you can simply change the output layer with a scalar then train with mse loss.


otherDeploymentBranchPattern doesn't work with multi-module builds and ${project.version}

When a branch matches otherDeploymentBranchPattern, the normalized branch name will be appended to the POM version. Under the hood, the plugin uses project.setVersion() to set the version. It does not change the POM.
For multi-module builds and builds that use ${project.version}, this causes problems since parent versions and ${project.version} are not set to the correct version (i.e. the version including the branch name).
For example, a module referencing its parent:
<parent>
  <groupId>test</groupId>
  <artifactId>parent</artifactId>
  <version>1.0.0-SNAPSHOT</version> <!-- Note that the branch name is missing -->
</parent>

For example, a (parent) POM with dependency management of its modules:
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>test</groupId>
      <artifactId>module1</artifactId>
      <version>${project.version}</version> <!-- Note that project.version won't contain the branch name -->
    </dependency>
  </dependencies>
</dependencyManagement>

I don't see a simple way to solve this, or am I missing something?
The only solution I see is to change the POM file. That can be done either by the user (see https://github.com/egineering-llc/gitflow-helper-maven-plugin/pull/83), or automatically by the plugin.
What do you think?

@bvarner How would you like to continue with this issue? It's blocking feature branch deployment. My proposal is to just let enforce-versions check whether the branch name is part of the artifact version. Then it's up to the user to set the correct version. It's not ideal, but it should work. What do you think?

Sorry for the ridiculously slow response -- I may need to draft another maintainer. :-)
So you'd have enforce-versions check if the branch name is part of the artifact version and then... do what? I'm not sure I follow here.
I'm currently working on a project where we're just talking about pushing feature branch artifacts to the snapshots repo so that other projects can use poc's deployed there. Our plan at this point was to have that dependency managed by the devs, in the pom, with the expectation that there would have to be a non-snapshot release of that feature before the dependent project could continue.
We've so far avoided having a parent pom -- although that's been part of our discussions as well.

I ran into a similar case the other day, using the quarkus maven plugin to build a quarkus project.
Since then, I've been mulling over what to do.
Currently, the version setting happens in the retarget deploy mojo -- very very late in the build cycle.
The version manipulation should probably happen in an extension.
In this case, we could manipulate the project models in memory before any goal execution begins.
This would include all the projects being built as part of the current session.
I think this would actually make the intended features work as expected.

So...
I've been playing around with this idea in a branch, and what I come down to is:
All the projects and their metadata can be updated before the reactor actually kicks off -- if you manipulate versions in an extension. This allows parents, inter-dependencies, plugins, and multi-module projects etc. to all work quite well.
The problem then becomes with the resultant pom that gets attached / deployed. It's not reflecting those changes, because it's based upon the File contents of the originating pom.
The extension manipulations I've been doing are all on the in-memory Project model.... which is nice, in that it's transient and leaves the original POM the reactor was built from in place and unaltered.
What I'm thinking about: is having the RetargetDeployMojo continue to set the snapshot repository, but also write the massaged copy of the project POM to the target directory, then set that as the active pom file on the in-memory project. This should make 'everything just work'.
Other outside projects could use the version as a dependency.
Multi-modules and parents could manage versions explicitly.
The only thing I haven't tried out locally yet is the writing of the massaged pom. I'll get that to this week, if things allow.

@robth, I've pushed an in-progress branch that's currently missing the automated test cases, but if you have any interest in testing this out, here's where I'm currently at:
https://github.com/egineering-llc/gitflow-helper-maven-plugin/tree/feature/other-branch-reversioning-extension
It looks like this works pretty well.

@bvarner as I am interested in this as well I had a look at the branch and tried it out myself. It looks pretty good IMO. I have also seen it play nice with other maven plugins that use/rely on the project version, and correctly 'see' the re-written version.
Some remarks:

The 'massaged' pom is put next to the regular pom.xml file. Personally I am not too keen on plugins creating files outside the build directory. Would it be possible to create this pom file in the build directory (target folder)?
When looking at a multi-module project, I noticed a small difference between my pom.xml file and the massaged pom.xml file. The former inherited the version from the parent declaration, whilst the latter would also include an explicit declaration of the version of the child as well. The end result (the version of the child) is the same, so I guess it is not an issue.

How close do you see this to being finished? Any aspects you'd like to see tested?

I have done some additional experiments and noticed that the re-written version is visible for plugins when they obtain that version from the injected MavenProject.
If the version is supplied to the plugin through its configuration as the property ${project.version}, then it is resolved to the original value.
For example see this use of the maven-antrun-plugin:
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>3.0.0</version>
                <executions>
                    <execution>
                        <phase>process-classes</phase>
                        <configuration>
                            <propertyPrefix>mvn.</propertyPrefix>
                            <target>
                                <echo>${project.version}</echo>
                                <echo>${mvn.project.version}</echo>
                            </target>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

Will result in:
[INFO] --- maven-antrun-plugin:3.0.0:run (default) @ child2 ---
[INFO] Executing tasks
[WARNING]      [echo] 1.0-SNAPSHOT
[WARNING]      [echo] 1.0-feature-test-SNAPSHOT
[INFO] Executed tasks

The ${project.version} returns the original project version value, whilst the ${mvn.project.version} returns the expected re-written project version value.
I noticed while debugging these from one of the Extensions's afterProjectRead callbacks, that the configuration of the maven-antrun-plugin already had the property project.version expanded to the original value of the project version.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <propertyPrefix>mvn.</propertyPrefix>
  <target>
    <echo>1.0-SNAPSHOT</echo>
    <echo>${mvn.project.version}</echo>
  </target>
</configuration>

That explains why ${mvn.project.version} expands to the expected (re-written) version, as that value is obtained by the maven-antrun-plugin from the MavenProject.
Note sure if this can be addressed or not, but is at least something to be aware of.

After integration with Jenkins I got following warning from Jenkins' Maven probe:
[WARNING] [jenkins-event-spy] Unexpected Maven project file name 'pom-gitflow-massaged.xml', problems may occur

This probe is aware of the fact that Maven plugins could re-configure/alter the pom file and tries to find 'the right one'. In some cases it uses the alternative one, and in others it uses the original one.
To address this warning we could see if the Maven probe can be extended to include an specific branch for this plugin as well (it already has some hardcoded branches to deal with various other maven plugins), or the location and name of the massaged pom files should be made configurable.
The latter would have my preference, as it should allow the user to also relocate this generated file towards the target folder, for example towards target/gitflow/pom.xml. In that case the Maven probe should stay silent (as the path ends with /pom.xml) and the generated file would be in the target folder.
What do you think of this approach @bvarner ?

I have a final observation and that is related to the use of profiles. It appears that if a pom contains a profile that is activated with a file (exists/missing), that the 'massaged' pom will contain the resolved absolute path rather than the path defined in the source pom file.
This may be an issue in Maven itself, as I think the MavenProject.getOriginalModel() should have returned a Model completely unresolved. I have posted a question on the Maven mailinglist to see if this is indeed an issue with Maven itself, or that the plugin needs to address.

Any updates regarding this? I'm running into the same issue

@rdefreitas : as far as I can tell, we are still waiting for @bvarner to have a look at the provided feedback.
From the last couple of months using the proposed changes I found one additional limitation that can be quite annoying. Suppose you have the following multi-module structure:
parent
|- child1
|- child2
`- child3

And the following dependencies between the child modules:
child3 -> child2
child2 -> child1

Building the project from the parent's basedir works as expected: all the dependencies between the child modules are properly rewritten and have the feature suffix added.
However, if, after building the entire project locally using mvn clean install, you want to build just child3 again for instance, it will fail to recognise that it should rewrite the dependency to child2, and will fallback to using the version in the pom file (so without the feature suffix).
In case of large multi-module projects and/or projects with long build times times, having to build the entire multi-module project can become very time consuming.

@glimmerveen @bvarner this sounds like a case in which it might be worth allowing the new functionality to have a configuration flag and marked as an experimental feature. (unless of course the change is so pervasive that's impossible).
These issues sound a bit too large in scope for one individual to handle and may require multiple iterations based on user feedback.

@rdefreitas I guess the feature toggle is already present, if you configure <otherDeployBranchPattern/>, this functionality is disabled.
To my knowledge this functionality has never worked for multi-module projects, and the last limitation I mentioned is not really an issue for a project without modules.
I agree it is a tricky piece of functionality to get right, so additional testing is greatly appreciated.
Together we may be able to extend the proposed changes with support for building a partial set of modules in a multi-module project.

My apologies for not giving this the attention it deserves -- it sounds like this solves some problems (while potentially creating plenty more corner cases) for some of you.
If I've skimmed through this and am reading (and recalling my own) notes properly -- (January seems so long ago) the branch was in a 'workable' state.
If everyone on this thread could do me a favor and thumbs-up this comment if you're OK with me pushing a release of that branch, I'll work to make that happen -- if there's unresolved issues that will be huge blockers or cause things to fail, please thumbs-down and comment specifically what the issue is, and we'll start addressing those more... directly.

My apologies for not giving this the attention it deserves -- it sounds like this solves some problems (while potentially creating plenty more corner cases) for some of you.

No worries! I appreciate the work you've already put into this!

If I've skimmed through this and am reading (and recalling my own) notes properly -- (January seems so long ago) the branch was in a 'workable' state.
If everyone on this thread could do me a favor and thumbs-up this comment if you're OK with me pushing a release of that branch, I'll work to make that happen -- if there's unresolved issues that will be huge blockers or cause things to fail, please thumbs-down and comment specifically what the issue is, and we'll start addressing those more... directly.

I think it will help to have a release of the current state. I agree it is in a workable state, and having the feature available in a release will allow more people to test and provide feedback. I am looking at the limitation I mentioned a couple of days ago, to see if there is a way to solve this, but I don't mind that solution being part of a future release.

@bvarner I think I have been able to address the limitation I mentioned about partial building of multi-module project. I opened PR #120. Could you take a look at it, and determine whether this can be merged into the feature you are working on?

Hi @bvarner, any progress on getting a 3.1.0 release of gitflow with the proposed changes?
Also I'd like to bring to your attention PR #120 that removes an, in my opinion, big limitation related to partial building of multi-module projects. I believe including this PR makes the feature more user friendly, so I would prefer to have it included in the upcoming release as well, but I will leave it up to your discretion whether this is feasible and desirable.

Speaking of which, I discovered any issue with the otherBranch functionality that can allow the branch name to be applied to the snapshot more than once in certain scenarios.  I've added a fix here #122

@bvarner do you agree that with the suggested deltas from #120 and #122 , we can move forward to merging branch feature/other-branch-reversioning-extension and cutting a 3.1.0 release?

Haven't had the chance to come back to this. Is this issue considered fully resolved now with the current release? I'm still running our custom build based on the changes proposed here last here.

Hi @rondefreitas , sorry for this (very) late reply. I have been using a locally forked version of this relatively successfully. The main issue I encounter with this functionality is related to IntelliJ import of a project when it is on a branch matching the othterDeploymentBranchPattern.
In case of a multi-module project, some (a bit older) IntelliJ versions would allow inter-module dependencies to resolve properly to the IDEA modules in the same project, however the later versions (2021.x) unfortunately does not work as desired: dependencies are always resolved towards the local Maven repository. This is ofcourse very inconvenient, as the linked aspect of a multi-module project is no longer directly linked inside your IDE.
There is a way around this, by configuring the following as VM options for importer: -Dgitflow.skip.extension. This disables the magic and ensures that IntelliJ understands the project again. This does mean that IntelliJ no longer 'sees' the rewritten version, but is able to properly link the modules inside the IDE based on the inter-module dependencies.

Hi @rondefreitas and @bvarner , while using this feature for a longer period, there are some changes I think are needed, in order for the OtherBranchVersionExtension to run more reliably, especially in combination with IntelliJ IDEA's Maven integration. I opened PR #128 with the proposed changes.

I guess that with the merging of PR #126 and #128 this issue can be closed as well. There is an open PR  #134 with some improvements, but I think the requested capability is now present in development.


Document automatically-created bigquery tables

Most importantly, what their names are, where they are, and how often they are updated.
For the time being, this is for the benefit of our internal team, so that would do to start with. Notify the team of its location when done.
However, within a couple of months we will be releasing our BigQuery OP dataset publicly, so it would also be useful to add to this document some stubs describing the source and purpose of each table and how it joins to the others.
I suggest the location should be the readme here - a repository which is supposed to be a collection of handy exemplar queries for internal and external use. We could iterate that and aim to tidy it up in a couple of months.

Have begun to work on this at https://github.com/ebmdatalab/prescribing-queries/compare/document-bq-tables?expand=1

Before we make this public, we may want to make some changes to the data.
A few off the top of my head:

Change hscic.prescribing.net_cost and hscic_prescribing.actual_cost to be integers not floats
Change all the TIMESTAMP fields to STRINGs of the format yyyy_mm
Change references to "PCT" to "CCG"
Be consistent in pluralising table names (we currently have practices and presentation)
Be consistent in whether we use *_id in field names

Are net_cost and actual_cost Integers?  Also, I like timestamps!

Note that I've merged the WIP referenced above, to make it easier for non-coders to collaborate on iteratively improving it


Update README.md

Updating the README to remove references of out of scope or deprecated concepts such as certification and device capability models.

@miagdp @briancr-ms @bzurcher @madhavan-k @dominicbetts @jspaith please review.
Please add others as needed to review.


HanekeSwift skips some images when app is performing heavy I/O

Hello guys,
I have a UICollectionView displaying some images using Haneke's hnk_setImageFromURL: method.
In the meantime, in one of my own concurrent queues of service class "background", I am performing some heavy network and I/O operation. Here's the snippet.
 /**
        Saves the encoded video clips for all the clips in a `StandardClipsGroup` at /:eventId/clips

        - parameter group: The group for which the encoded clips we want to save
    */
    private func saveEncodedVideoForStandardClipsGroup(group: StandardClipsGroup) {

        let encodedVideoClipsPath = eventClipsPathForEventId(group.eventId)

        // check if /:eventId/clips directory exists. If not, create it.
        if !directoryExists(encodedVideoClipsPath) {
            logv("ℹ/:eventId/clips directory does not exist. Creating...")
            createEventClipsDirectoryForEventId(group.eventId)
        }

        for clip in group.clips {

            // skip saving clips with raw video
            guard let encodedClipVideo = clip.encodedClip else {
                continue
            }

            // skip re-saving if file already exists
            guard !self.fileExists(encodedVideoClipsPath, filename: encodedClipVideo) else {
                continue
            }

            autoreleasepool {

                // TODO: If the clips are on cloud this will fail
                let encodedClipVideoDataPath = encodedVideoClipsPath.URLByAppendingPathComponent(encodedClipVideo)
                let encodedClipVideoData = NSData(contentsOfURL: NSURL(string:"\(self.serverHostname)\(clip.encodedClipPath!)")!)
                encodedClipVideoData!.writeToFile(encodedClipVideoDataPath.path!, atomically: false)

            }

        }

    }

The issue is that when this operation is running in the background, Haneke doesn't load a significant amount of images in the collection view. I am suspecting this is happening because it waits for I/O resources to either write or read from the cache.
Is this something that could be improved from Haneke's perspective or should I tweak my background code in some way to avoid hogging so many I/O resources.
I'd love to hear your ideas. Thanks!

Never experienced this problem


podmanv2 ps

add the ability to list containers
Signed-off-by: Brent Baude<EMAIL_ADDRESS>

@mheon after talking with @jwhonce , we want to keep pkg/ps until we complete this thing. we suspect more code like this will emerge and then we can find a suitable home that makes sense.

LGTM

/lgtm