Skip to content

Allow configuration of artifact name in app config #4107

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 10, 2017

Conversation

theotherjimmy
Copy link
Contributor

@theotherjimmy theotherjimmy commented Apr 4, 2017

This patch allows a user to configure the artifact name through the
mbed_app.json file.

Suggested by @andrewleech in #4103

Example

{
    "artifact_name" : "FooBar"
}

This will rename the executable in your application from <dirname(app-dir)>.bin to FooBar.bin

The precedence is (fall through if not specified):

  1. Command line argument.
  2. mbed_app.json artifact_name key
  3. Name of the directory that contains the project.

@andrewleech
Copy link
Contributor

Nice!

@@ -797,6 +798,13 @@ def validate_config(self):
return True


@property
def name(self):
if "artifact_name" in self.app_config_data:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not completely familiar with this file yet.... will this work for mbed_lib.json as well as mbed_app.json?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nope. Just mbed_app.json

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just thought of that based on seeing related issues in the past (ARMmbed/mbed-cli#229). Not sure if mbed_lib.json is used with mbed compile --library?
Also not sure whether working for both is needed for consistency?

Copy link
Contributor

@bridadan bridadan Apr 7, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest only doing this for apps for now. Not every mbed_lib.json corresponds to an archived library build. In fact, it almost never works like this. At least you know there is only one app, so you can lock down the name of the produced binary.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Strangely enough, you can put an mbed_app.json in the root of a library build folder and it will be picked up.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is def name not artifact_name if that is what it modifies or returns?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking here: https://github.com/theotherjimmy/mbed/blob/6a646eb4b22ad24a42d8533af6c126433496fd08/tools/build_api.py#L484-L485 The default behavior did not change: the directory name of the parent directory of the project is used.

Copy link
Contributor Author

@theotherjimmy theotherjimmy Apr 10, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, agreed (with the thumbs down): we should discuss how naming from configs should affect the library name. If we come up with something, I will submit another PR that implements that thing that we came up with.

@0xc0170
Copy link
Contributor

0xc0170 commented Apr 4, 2017

This patch allows a user to configure the artifact name through the
mbed_app.json file.

It would help to provide examples how this is used

@0xc0170
Copy link
Contributor

0xc0170 commented Apr 4, 2017

Please look at travis failure

@theotherjimmy
Copy link
Contributor Author

Travis failure a test case API problem. I added to the API, and used the API, but never updated the test cases to mock the API. That's resolved now.

@andrewleech
Copy link
Contributor

Looks great to me, pending whatever jenkins is unhappy about.

It'll need a docs update, is there a procedure for enforcing docs being kept up to date with code functionality changes?

@0xc0170
Copy link
Contributor

0xc0170 commented Apr 5, 2017

Looks great to me, pending whatever jenkins is unhappy about.

I restarted it

@0xc0170
Copy link
Contributor

0xc0170 commented Apr 5, 2017

/morph test

@mbed-bot
Copy link

mbed-bot commented Apr 5, 2017

Result: SUCCESS

Your command has finished executing! Here's what you wrote!

/morph test

Output

mbed Build Number: 1838

All builds and test passed!

@sg- sg- merged commit e3edbab into ARMmbed:master Apr 10, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants