Skip to content
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

Allow build image with local changes for debug purpose #247

Merged
merged 3 commits into from
Feb 15, 2017
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions build_image.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,12 @@
}

## Retrieval short version of Git revision hash for partition metadata
[ -z "$(git status --untracked-files=no -s --ignore-submodules)" ] || {
echo "Error: There is local changes not committed to git repo. Cannot get a revision hash for partition metadata."
exit 1
}
GIT_REVISION=$(git rev-parse --short HEAD)
if [ -z "$(git status --untracked-files=no -s --ignore-submodules)" ]; then
GIT_REVISION=$(git rev-parse --short HEAD)
else
echo "Warning: There is local changes not committed to git repo. Cannot get a revision hash for partition metadata."
Copy link
Contributor

@jleveque jleveque Feb 3, 2017

Choose a reason for hiding this comment

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

"Warning: There are local changes not committed to..." #Resolved

Copy link
Collaborator

@lguohan lguohan Feb 3, 2017

Choose a reason for hiding this comment

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

you can always do local commit, it is git. #WontFix

Copy link
Collaborator

@oleksandrivantsiv oleksandrivantsiv Feb 3, 2017

Choose a reason for hiding this comment

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

For development it is not comfortably to keep in mind that after each change local commit should be performed.
Another think is if build is run in second time sub-modules will have untracked files:

git status
...
        modified:   src/lldpd (modified content, untracked content)
        modified:   src/sonic-linux-kernel (untracked content)
        modified:   src/sonic-quagga (modified content, untracked content)
        modified:   src/sonic-sairedis (untracked content)
        modified:   src/sonic-swss (untracked content)
        modified:   src/sonic-swss-common (untracked content)
...

This also will cause "build_image.sh" fail. #Closed

Copy link
Collaborator

@lguohan lguohan Feb 3, 2017

Choose a reason for hiding this comment

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

ok. I then we need to avoid this in the official build. It is important for us to debug. I would suggest to have an option in rules/config to turn on/off this check.

for example,
ENFORCE_CLEAN_BUILD = y #Resolved

Copy link
Collaborator

@lguohan lguohan Feb 3, 2017

Choose a reason for hiding this comment

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

for dev env, you can turn it off, and it just prints out warning. If the option is yes, then it will break the build. #Resolved

Copy link
Contributor Author

@taoyl-ms taoyl-ms Feb 3, 2017

Choose a reason for hiding this comment

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

We have "--untracked-files=no" so those untracked files in submodules won't break the build.
But I do agree with you that we should not force dev to commit everything before build the code, because, 1) the change might only be a temporary one, like adding some debug printing that you would definitely remove soon. Make a commit for those change will make debug process much more complicated. 2) if you are generating a build based on local changes, it's better to have "local build" information in the image version rather than only a git hash pointing to a local commit that other people will find it nowhere.


In reply to: 99333402 [](ancestors = 99333402)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

agree. will work on that.


In reply to: 99337285 [](ancestors = 99337285)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We have "--untracked-files=no" so those untracked files in submodules won't break the build.
But I do agree with you that we should not force dev to commit everything before build the code, because, 1) the change might only be a temporary one, like adding some debug printing that you would definitely remove soon. Make a commit for those change will make debug process much more complicated. 2) if you are generating a build based on local changes, it's better to have "local build" information in the image version rather than only a git hash pointing to a local commit that other people will find it nowhere.

GIT_REVISION=$(git rev-parse --short HEAD)"_local_debug"
fi

mkdir -p `dirname $OUTPUT_ONIE_IMAGE`
sudo rm -f $OUTPUT_ONIE_IMAGE
Expand Down