As a person who has to deliver some hard facts at work, I have thought a lot about how to deliver unpleasant news. If my "honesty" is making someone angry, there's a 90% chance I'm speaking about conclusions or judgements and not actual facts.
For example, if I tell you that you are "argumentative," that's a conclusion and a judgement, not a fact. The facts might look something like this:
When I say "black" you say "white" but if I say "ok, white" you say "no. black"
I don't believe you are listening to me
I want you to agree with me more than you do
When you were talking just then you spat on my clothes.
The librarian just told us to "shush!"
Conclusions and judgements are not facts, they are opinions that can vary from person to person. To insist that others share your opinions often doesn't work out very well. You can be just as outspoken and not get into fights if you learn to describe what led you to your conclusion and subtract the judgment part.